[go: nahoru, domu]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extensions to PSI Logic, Updated CI, and Bug Fixes #494

Merged
merged 3 commits into from
Jul 15, 2023

Conversation

TabOg
Copy link
Contributor
@TabOg TabOg commented Jan 19, 2023

Added support for processing queries with the NOT operator homomorphically.
Introduced the NOT Expr, and a corresponding inline NOT QueryExpr Within the weights, or CNF, framework:

  • Extensions to the ExpandOr() function to queries with NOT operators, via a new function negate()
  • New function Tidy() which eliminates duplicate columns in inner clauses, or columns and their negation in inner clauses that can be created by squashing ORs. It also eliminates empty clauses,
  • Put the code from build() which constructed the corresponding weights into a new function buildWeights(), and extended this to the case there are negations of columns
  • New framework which evaluates queries homomorphically directly from the string:
  • New function removeOr() within the QueryBuilder class which generates a new query string which is logically equivalent, but only has Ands and Nots
  • Overloaded contains() function that takes a string instead of a QueryType, and evaluates the RPN directly using a stack of ciphertexts

Updated CI

  • Deprecated build&test on Ubuntu 20.04
  • Updated build&test on Ubuntu 22.04
  • Added build&test on macOS 12 and MacOS 13

Bug Fix for unsafe use of sprintf

Co-authored-by: @TabOg
Co-authored-by: @jlhcrawford
Co-authored-by: @hamishun
Co-authored-by: @faberga

Added support for processing queries with the NOT operator homomorphically.

Introduced the NOT Expr, and a corresponding inline NOT QueryExpr Within the weights, or CNF, framework:
* Extensions to the ExpandOr() function to queries with NOT operators, via a new function negate()
* New function Tidy() which eliminates duplicate columns in inner clauses, or columns and their negation in inner clauses that can be created by squashing ORs. It also eliminates empty clauses,
* Put the code from build() which constructed the corresponding weights into a new function buildWeights(), and extended this to the case there are negations of columns
* New framework which evaluates queries homomorphically directly from the string:
* New function removeOr() within the QueryBuilder class which generates a new query string which is logically equivalent, but only has Ands and Nots
* Overloaded contains() function that takes a string instead of a QueryType, and evaluates the RPN directly using a stack of ciphertexts

Co-authored-by: @TabOg 
Co-authored-by: @jlhcrawford
Co-authored-by: @hamishun
@faberga faberga self-assigned this Jul 13, 2023
* Fix  deprecated sprintf in GTestApproxNums.cpp
Removed ubuntu-20.04
Updates ubuntu-22.04
Added macOS 12, and MacOS 13
@faberga faberga changed the title Extending PSI Logic to support NOT Operator Extension to PSI Logic, Updated CI, and Bug Fixes Jul 14, 2023
@faberga faberga changed the title Extension to PSI Logic, Updated CI, and Bug Fixes Extensions to PSI Logic, Updated CI, and Bug Fixes Jul 15, 2023
@faberga faberga merged commit f6a5f90 into homenc:master Jul 15, 2023
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants