Tree grammars for induction on inductive data types modulo - - PowerPoint PPT Presentation

tree grammars for induction on inductive data types
SMART_READER_LITE
LIVE PREVIEW

Tree grammars for induction on inductive data types modulo - - PowerPoint PPT Presentation

Tree grammars for induction on inductive data types modulo equational theories Gabriel Ebner, Stefan Hetzl WAIT 2018 2018-06-28 TU Wien Introduction Proofs and tree grammars Inductive proving using tree grammars Evaluation Conclusion 1


slide-1
SLIDE 1

Tree grammars for induction on inductive data types modulo equational theories

Gabriel Ebner, Stefan Hetzl WAIT 2018 2018-06-28

TU Wien

slide-2
SLIDE 2

Introduction Proofs and tree grammars Inductive proving using tree grammars Evaluation Conclusion

1

slide-3
SLIDE 3

Introduction

  • Main challenge: synthesis of induction formula
  • Consider proofs of instances ϕ(t) of ∀x ϕ(x)
  • similar to the constructive ω-rule,

bounded model checking, etc.

  • Generalize instance proofs via Herbrand’s theorem
  • abstracts from propositional reasoning

2

slide-4
SLIDE 4

Herbrand’s theorem

Theorem (special case of Herbrand 1930) Let ϕ(x) be a quantifier-free first-order formula. Then ∃x ϕ(x) is valid iff there exist terms t1, . . . , tn such that ϕ(t1) ∨ · · · ∨ ϕ(tn) is a tautology.

  • works analogously for ∀x ϕ1(x), . . . , ∀x ϕn(x) ⊢ ψ

3

slide-5
SLIDE 5

Induction-elimination

Theorem (Gentzen 1936) Let π be a proof of ∀x ϕ(x) with induction. Then there exists a proof πt of ϕ(t) without induction (or cut).

  • t: instance, e.g. 0 s 0

cons a nil

  • t: instance proof

4

slide-6
SLIDE 6

Induction-elimination

Theorem (Gentzen 1936) Let π be a proof of ∀x ϕ(x) with induction. Then there exists a proof πt of ϕ(t) without induction (or cut).

  • t: instance, e.g. 0, s(0), cons(a, nil)
  • πt: instance proof

4

slide-7
SLIDE 7

Proofs and grammars (Eberhard, Hetzl 2015)

π πt G(π) L(G(π), t) Lt cut- and induction-elim. generates ⊇ for each instance t grammar H-disjunction 1. 2.

5

slide-8
SLIDE 8

Proofs and grammars (Eberhard, Hetzl 2015)

π πt G(π) L(G(π), t) Lt cut- and induction-elim. generates ⊇ for each instance t grammar H-disjunction 1. 2.

5

slide-9
SLIDE 9

Side remark: cut-introduction

  • Instead of reconstructing inductions,

we can also reconstruct (Π1-)cuts

  • Similar 2-phase approach
  • complete: every generated grammar produces a lemma

→ finds interesting lemmas in practice

6

slide-10
SLIDE 10

Introduction Proofs and tree grammars Inductive proving using tree grammars Evaluation Conclusion

7

slide-11
SLIDE 11

New developments

  • Implementation
  • Inductive data types
  • Equational background theories

8

slide-12
SLIDE 12

Equational background theories

  • Instance proofs are often irregular

→ ignore some (formula) instances

  • E is a set of (universally quantified) equations
  • e.g. E = {x · (y · z) = (x · y) · z}
  • ϕ is an E-tautology iff E |

= ϕ

9

slide-13
SLIDE 13

Inductive data types

  • Basic inductive data types
  • not nested, mutual, etc.
  • Structural induction

Γ ⊢ ϕ(nil) Γ, ϕ(y) ⊢ ϕ(cons(x, y)) Γ ⊢ ϕ(t)

10

slide-14
SLIDE 14

Simple induction proofs

  • One universally quantified induction
  • But different formula
  • (ψ is prenex and universally quantified)

(πi) Γi, ψ(α, νi,j, t), · · · ⊢ ψ(α, ci(νi), γ) Γ, ∀y ψ(α, νi,j, y), · · · ⊢ ∀y ψ(α, ci(νi), y) · · · indρ Γ ⊢ ∀y ψ(α, α, y) (πc) Γc, ψ(α, α, u), · · · ⊢ ϕ(α) Γ, ∀y ψ(α, α, y) ⊢ ϕ(α) cut Γ ⊢ ϕ(α) Γ ⊢ ∀x ϕ(x)

11

slide-15
SLIDE 15

Induction grammar

Definition Induction grammar is a tuple G = (τ, α, (νc)c, γ, P) with productions P of the form:

  • τ → t[α, νc, γ]
  • γ → t[α, νc, γ]

12

slide-16
SLIDE 16

Induction grammar

Definition G(π) is induction grammar for simple induction proof π → describes quantifier instances Definition L(G, t) is the (finite) language of G (t constructor term) Theorem L(G(π), t) is E-tautological for all t

13

slide-17
SLIDE 17

Example

∀x (s(0) · x = x ∧ x · s(0) = x), (f1) ∀x∀y∀z x · (y · z) = (x · y) · z, (f2) fact(0) = s(0), (f3) ∀x fact(s(x)) = s(x) · fact(x), (f4) ∀y qfact(y, 0) = y, (f5) ∀x∀y qfact(y, s(x)) = qfact(y · s(x), x) (f6) ⊢ ∀x qfact(s(0), x) = fact(x) (goal) τ → f3 | f4(ν) | f5(γ) | f6(ν, γ) γ → γ · s(ν) | s(0)

14

slide-18
SLIDE 18

Introduction Proofs and tree grammars Inductive proving using tree grammars Evaluation Conclusion

15

slide-19
SLIDE 19

Algorithm overview

Obtain proofs (πr)r∈I Find grammar G Random testing: is L(G, t) always E-tautological? Find solution Output proof Obtain additional proof πt counterexample found 1. 2.

16

slide-20
SLIDE 20

Grammar finding

  • Given finite collection t → Lt
  • Lt represents a Herbrand disjunction
  • Want G such that L(G, t) ⊇ Lt
  • Find G with minimal number of productions
  • using a MaxSAT solver (see also Eberhard, E, Hetzl 2017)

17

slide-21
SLIDE 21

Induced Boolean unification problem

  • Induction grammar induces BUPG(X)
  • Γ1, ∧

l

∧ X(α, ν1,l, t) ⊢ X(α, c1(ν1), γ)

  • Γn, ∧

l

∧ X(α, νn,l, t) ⊢ X(α, cn(νn), γ)

  • Γc, ∧ X(α, α, t) ⊢ ϕ(α)
  • There exists simple induction proof with grammar G

iff there exists quantifier-free ϕ s.t. BUPG(ϕ) E-tautology → Find quantifier-free X such that all sequents are E-tautological

  • even for quantified induction formulas

18

slide-22
SLIDE 22

BUP example

  • qfact(γ, 0) = γ, fact(0) = s(0), ⊤ ⊢ X(α, 0, γ)
  • fact(0) = s(0), fact(s(ν)) = s(ν) · fact(ν),

qfact(γ, 0) = γ, qfact(γ, s(ν)) = qfact(γ · s(ν), ν), X(α, ν, s(0)) ∧ X(α, ν, γ · s(ν)) ⊢ X(α, s(ν), γ)

  • fact(0) = s(0), X(α, α, s(0)) ⊢ qfact(s(0), α) = fact(α)

Solution: X qfact fact

19

slide-23
SLIDE 23

BUP example

  • qfact(γ, 0) = γ, fact(0) = s(0), ⊤ ⊢ X(α, 0, γ)
  • fact(0) = s(0), fact(s(ν)) = s(ν) · fact(ν),

qfact(γ, 0) = γ, qfact(γ, s(ν)) = qfact(γ · s(ν), ν), X(α, ν, s(0)) ∧ X(α, ν, γ · s(ν)) ⊢ X(α, s(ν), γ)

  • fact(0) = s(0), X(α, α, s(0)) ⊢ qfact(s(0), α) = fact(α)

Solution: X = λαλνλγ (qfact(γ, ν) = γ · fact(ν))

19

slide-24
SLIDE 24

Canonical formula

  • Canonical formula Ct for t instance
  • Simplest case Cs(s(0)) = Γ0 ∧ Γ1[ν\0] ∧ Γ1[ν\s(0)]
  • Implies any other solution
  • Ct → ϕ(α, t, γ)

→ Solution finding algorithm

  • 1. Compute Ct
  • 2. Enumerate consequences
  • e.g. using forgetful resolution (a → b) ∧ (b → c) ⇝ (a → c)
  • 3. Replace some occurrences of t by ν
  • 4. Check if it is a solution

20

slide-25
SLIDE 25

Undecidability of BUP solution

  • Solvability of BUP is undecidable (Eberhard, Hetzl, Weller

2015)

  • L(G, t) E-tautological for all t ⇒ BUP solvable?
  • unfortunately no

→ solvability depends on the input proofs

21

slide-26
SLIDE 26

Introduction Proofs and tree grammars Inductive proving using tree grammars Evaluation Conclusion

22

slide-27
SLIDE 27

Implementation

  • Prototype implementation
  • GAPT: General Architecture for Proof Theory
  • https://github.com/gapt/gapt
  • Native support for TIP format

23

slide-28
SLIDE 28

Evaluation on TIP

  • Solves about 22 problems out of the box
  • Bit more with manual options
  • All with quantifier-free induction formula
  • Probably due to lack of regularity in proofs

24

slide-29
SLIDE 29

Reconstruction success

  • Does the method work with regular sequences of proofs?
  • Tested 52 simple induction proofs
  • We can always find a grammar.
  • Reconstruction works for 43 proofs.

25

slide-30
SLIDE 30

Case study: schematic CERES

  • Analysis of proofs with induction (Cerna, Leitsch, Lolic;
  • ngoing work)
  • Requires automatic inductive proof as intermediate step
  • Complex induction invariants

(Omega(ν) → E(o, f(S(a)))) ∧ (Omega(ν) → E(o, f(a))) ∧ (Omega(ν) → Phi(o)) ∧ ¬(Phi(s(ν)) ∧ Phi(ν) ∧ Omega(s(ν))) (automatically found)

26

slide-31
SLIDE 31

Introduction Proofs and tree grammars Inductive proving using tree grammars Evaluation Conclusion

27

slide-32
SLIDE 32

Future work

  • Modify provers to produce more regular proofs
  • e.g. innermost vs. outermost rewriting
  • Regularize existing proofs?
  • Improve solution finding phase

→ constrained Horn clause solvers

28

slide-33
SLIDE 33

Conclusion

  • Not yet sufficient for TIP problems
  • Alternative challenge:
  • Instead of finding induction formulas,

find regular sequences of Herbrand disjunctions

29