a practical polynomial calculus for arithmetic …fmv.jku.at/kaufmann/talks/ritirc-sc218.pdfa...

23
A PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc , Armin Biere and Manuel Kauers Johannes Kepler University Linz, Austria SC-Square Workshop 2018 July 11, 2018 Oxford, United Kingdom

Upload: others

Post on 25-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

A PRACTICAL POLYNOMIAL CALCULUS FORARITHMETIC CIRCUIT VERIFICATION

Daniela Ritirc, Armin Biere and Manuel KauersJohannes Kepler UniversityLinz, Austria

SC-Square Workshop 2018July 11, 2018Oxford, United Kingdom

Page 2: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Motivation

Multipliera1 b1 a0 b1 a1 b0 a0 b0

g1 g2 g3

g4

s0s1s2s3

Polynomials

B = {x− a0 ∗ b0,y − a1 ∗ b1,s0 − x ∗ y,. . .

}

Verification

6= 0 7

= 0 3

Specification

2n−1∑i=0

2isi−

(n−1∑i=0

2iai

)(n−1∑i=0

2ibi)

Correct?

Problem: Verification might not be error free

Goal: Validate result of verification process

� Generate machine-checkable proofs

� Check by independent proof checkers

Contribution:

� Proof format based on polynomial calculus

� Independent proof checker

� Validate previous verification results

Page 3: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Related Work

� Reasoning with polynomial equations� D. Kapur. Using Gröbner Bases to Reason About Geometry Problems. In JSC, 1986.

� Algebraic proof systems� M. Clegg, J. Edmonds and R. Impagliazzo. Using the Groebner basis algorithm to find

proofs of unsatisfiability. In STOC, 1996.� P. Beame, R. Impagliazzo, J. Krajícek, T. Pitassi and P. Pudlák. Lower bounds on Hilbert’s

Nullstellensatz and propositional proofs. In Proc. London Math. Soc., 1996.

� Proof complexity� R. Impagliazzo, P. Pudlák and J. Sgall. Lower bounds for the polynomial calculus and the

Gröbner basis algorithm. In Computational Complexity, 1999.� M. Lauria and J. Nordström. Graph Colouring is Hard for Algorithms Based on Hilbert’s

Nullstellensatz and Gröbner Bases. In LIPIcs, 2017.

Page 4: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Preliminaries

Let f ∈ F[X].

Polynomial function. X 7→ f(X)

Polynomial equation. f(X) = 0 solutions are the roots of f

Ideal. A nonempty subset I ⊆ F[X] is called an ideal if

∀ p, q ∈ I : p+ q ∈ I and ∀ p ∈ F[X] ∀ q ∈ I : pq ∈ I

Basis. A set P = {p1, . . . , pm} ⊆ F[X] is called a basis of an ideal I if

I = {q1p1 + · · ·+ qmpm | q1, . . . , qm ∈ F[X]} = 〈P 〉

Page 5: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Polynomial Calculus

Let G ⊆ F[X] and f ∈ F[X].

Proof: Sequence P = (p1, . . . pn), where each pk is obtained by one of the rules:

Additionpi pjpi + pj

pi, pj appearing earlier in the proofor are contained in G

Multiplicationpiqpi

pi appearing earlier in the proofor is contained in G

and q ∈ F[X] being arbitrary

If pn = f we write G ` f or in algebraic terms f ∈ 〈G〉.

Refutation: G ` 1 or 1 ∈ 〈G〉.

Page 6: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Gröbner Basis

Because of Gröbner bases the polynomial calculus is decidable:

� Buchberger’s algorithm computes a Gröbner basis G = {g1, . . . , gm}for the ideal 〈H〉 generated by H.

� Given a Gröbner basis G, there is a computable function redG : F[X]→ F[X]

such that ∀ f ∈ F[X] : redG(f) = 0 ⇐⇒ f ∈ 〈G〉.

Page 7: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Example

a c

b

G = { −b+ 1− a, b = ¬a−c+ ab, c = a ∧ b = a ∧ ¬aa2 − a, b2 − b, c2 − c} a, b, c ∈ B

f = c

redG(f) = 0

−b+ 1− a∗−ab+ a− a2 a2 − a

+ −ab −c+ ab+ −c∗ c

P = (−ab+ a− a2, −ab, −c, c)

Page 8: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Extended Calculus

Radicalpmipi

m ∈ N \ {0} andpmi appearing earlier in the proof or is contained in G.

If f can be deduced from polynomials g ∈ G, we write G `+ f or f ∈√〈G〉.

Radical ideal.√〈G〉 = {f ∈ F[X] | G `+ f} = {f ∈ F[X] | fm ∈ 〈G〉 for m ∈ N \ {0}}

The extended calculus `+ is decidable. It can be reduced to ` with the Rabinowitsch trick:

f ∈√〈G〉 ⇐⇒ 1 ∈ 〈G ∪ {yf − 1}〉 or G `+ f ⇐⇒ G ∪ {yf − 1} ` 1

Page 9: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Models

Let G ⊆ F[X] and f ∈ F[X].

� A model for G is a point u = (u1, . . . , un) ∈ Fn such that for all g ∈ G it holds thatg(u1, . . . , un) = 0.

� We write G |= f if every model for G is also a model for {f}.

� For an algebraically closed field F we can deduce with Hilbert’s Nullstellensatz thatG |= f ⇐⇒ G `+ f .

� PC including the radical rule is correct (“⇐”) and complete (“⇒”).

� In combination with Rabinowitsch’s trick, we can decide the existence of models andproduce certificates for the non-existence of models.

Page 10: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Models in {0, 1}n

For our applications, only models u ∈ {0, 1}n ⊆ Fn matter.

� Let us write G |=bool f if every model u ∈ {0, 1}n of G is also a model of {f}.

� We have G |=bool f ⇐⇒ G ∪B |= f , where B = {xi(xi − 1) : i = 1, . . . , n}.

� G ∪B |= f ⇐⇒ G ∪B `+ f holds also when F is not algebraically closed.

� The finiteness of {0, 1}n also implies that G ∪B `+ f ⇐⇒ G ∪B ` f

(Seidenberg’s lemma).

Page 11: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Practical Algebraic Calculus

We translate the polynomial calculus into a more concrete proof format:

� For correctness it is important to know how the polynomials in the proof where derived

� Usually known→ store this information

Practical Algebraic Calculus (PAC)

allows automated proof checking

Page 12: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

PAC Syntax

letter ::= ‘a ’ | ‘b ’ | . . . | ‘z ’ | ‘A ’ | ‘B ’ | . . . | ‘Z ’number ::= ‘0 ’ | ‘1 ’ | . . . | ‘9 ’

constant ::= (number)+

variable ::= letter (letter | number)∗

power ::= variable [ ‘^ ’ constant ]term ::= power (‘* ’ power)∗

monomial ::= constant | [ constant ‘* ’ ] termoperator ::= ‘+ ’ | ‘- ’

polynomial ::= [ ‘- ’ ] monomial (operator monomial)∗

given ::= (polynomial ‘; ’)∗

rule ::= (‘+ ’ | ‘* ’) ‘: ’ polynomial ‘, ’ polynomial ‘, ’ polynomial ‘; ’proof ::= (rule ‘; ’)∗

Page 13: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Example - PAC

a c

b

G = { −b+ 1− a,

−c+ ab,

a2 − a, b2 − b, c2 − c}

f = c

* : -b+1-a, a, -a*b+a-a^2;

+ : -a*b+a-a^2, a^2-a, -a*b;

+ : -a*b, -c+a*b, -c;

* : -c, -1, c;

Page 14: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Proof Checking

A proof rule contains four components:

o : v, w, p;

Proof checking:

� Connection property: v, w are given polynomials or conclusions pi of previous rules

� Inference property: verify correctness of each rule, e.g. p = v + w for o = ” + ”

� Refutation check: at least one pi is a non-zero constant

Page 15: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Proof Checking Algorithm

input G sequence of given polynomialsr1 · · · rk sequence of PAC proof rules

output “incorrect”, “correct-proof”, or “correct-refutation”

P0 ←G

for i ← 1 . . . k

let ri = (oi, vi, wi, pi)

case oi = +

if vi ∈ Pi−1 ∧ wi ∈ Pi−1 ∧ pi = vi + wi then Pi← append(Pi−1, pi)else return “incorrect”

case oi = ∗if vi ∈ Pi−1 ∧ pi = vi ∗ wi then Pi← append(Pi−1, pi)else return “incorrect”

for i ← 1 . . . k

if pi is a non zero constant polynomial then return “correct-refutation”return “correct-proof”

Page 16: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Toolflow

.aig

n

.wl

.wl

.out

Verification

.pac

.polys

.spec

.singular

Certification

CertificationAIGMUL.&PROOFIT

Mathematica Pythonclean up

Python Singular

connect inference

PACMULTSPEC\PACEQSPEC

AIGMUL.

AIGTOPOLY

Mathematica PACTRIM

proof generation

verification check

check

Page 17: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Correctness and Equivalence Checking

HAFAFAHA

HAFAFAFA

HAFAFAFA

s7 s6 s5 s4 s3 s2 s1 s0

p00p01p10p11p20p21p30p31

p02p12p22p32

p03p13p23p33

HAFAFAHA

HAFAFAFA

HAFAFAFA

s7 s6 s5 s4 s3 s2 s1 s0

p00p01p10p02p11p20p12p21p30p22p31

p03p13p23p32

p33

Tailored heuristics:

� Split verification problem into sub-problems→ incremental verification [FMCAD’17]

� Rewrite and simplify Gröbner basis→ adder-rewriting [DATE’18]

Page 18: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Verifying Correctness of FMCAD’17 and DATE’18 Results

n mult optionproof Python/

verification generation PACTRIM Singular length core16 btor inc 4 70 0 4 14998 64%16 btor inc-add 1 37 0 4 12738 61%16 btor noninc 4 78 0 10 14966 64%32 btor inc 44 1631 1 83 63254 64%32 btor inc-add 7 801 1 67 53122 61%32 btor noninc 65 1811 5 551 63190 64%64 btor inc 622 49638 4 5125 259606 63%64 btor inc-add 121 22378 4 4650 216834 61%64 btor noninc MO MO - - - -16 sparrc inc 8 134 0 7 17445 62%16 sparrc inc-add 1 112 0 20 17804 63%16 sparrc noninc 11 2696 0 17 17413 62%32 sparrc inc 104 3582 1 175 73301 62%32 sparrc inc-add 8 2611 2 457 75244 63%32 sparrc noninc 351 TO - - - -64 sparrc inc 1575 TO - - - -64 sparrc inc-add 133 80906 12 EE 309164 62%64 sparrc noninc MO - - - - -

Page 19: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Equivalence Checking - DATE’18

n multproof Python/

verification generation PACTRIM Singular length core16 btor-btor 2 75 1 14 25410 59%32 btor-btor 27 1632 3 277 106114 59%64 btor-btor 502 45155 15 EE 433410 59%16 btor-sparrc 3 148 1 48 30476 61%32 btor-sparrc 28 3456 7 1011 128236 60%16 sparrc-sparrc 2 223 2 82 35542 61%32 sparrc-sparrc 29 5363 11 1899 150358 61%

10 20 30 40 50 60

050

000

1500

0025

0000

Bitwidth n

Leng

th o

f cor

e pr

oof Proof length: O(n2)

[BeameLiew-CAV’17]: O(n7 log n)

upper bound for resolution proof size

Page 20: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Conclusion & Future Work

Conclusion:

� Practical proof checking for algebraic reasoning

� Translation of polynomial calculus to a more concrete proof format

� Certification of correctness of certain multipliers

Future Work:

� Speed-up proof generation

� Explore connection between PAC and clausal proof systems (RUP, DRAT)

Page 21: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

A PRACTICAL POLYNOMIAL CALCULUS FORARITHMETIC CIRCUIT VERIFICATION

Daniela Ritirc, Armin Biere and Manuel KauersJohannes Kepler UniversityLinz, Austria

SC-Square Workshop 2018July 11, 2018Oxford, United Kingdom

Page 22: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Engineering

Use PolynomialReduce for reduction fG−→ 0 and deriving co-factors h1, ..., hk

such that f = h1g1 + . . .+ hkgk.

First we generate a multiplication proof rule for each product higi.

∗ : g1, h1, h1g1; · · · ∗ : gk, hk, hkgk;

These products are now simply added together as follows:

+ : h1g1, h2g2, h1g1 + h2g2;

+ : h1g1 + h2g2, h3g3, h1g1 + h2g2 + h3g3;...

+ : h1g1 + . . .+ hk−1gk−1, hkgk, f ;

Page 23: A Practical Polynomial Calculus for Arithmetic …fmv.jku.at/kaufmann/talks/Ritirc-SC218.pdfA PRACTICAL POLYNOMIAL CALCULUS FOR ARITHMETIC CIRCUIT VERIFICATION Daniela Ritirc, Armin

Circuit Verification

a1b1 a0b1 a1b0 a0b0

g1 g2 g3

g4

s0s1s2s3

G = { −s3 + g1g4,

−s2 + g1 + g4 − 2g1g4,

−g4 + g2g3,

−s1 + g2 + g3 − 2g2g3,

−g1 + a1b1,

−g2 + a0b1,

−g3 + a1b0,

−s0 + a0b0,

−a21 + a1,−a20 + a0,

−b21 + b1,−b20 + b0}

For all possible ai, bi ∈ B : (2a1 + a0) ∗ (2b1 + b0) = 8s3 + 4s2 + 2s1 + s0?