Realizability in Cyclic Proof Extracting Ordering Information for - - PowerPoint PPT Presentation

realizability in cyclic proof
SMART_READER_LITE
LIVE PREVIEW

Realizability in Cyclic Proof Extracting Ordering Information for - - PowerPoint PPT Presentation

Realizability in Cyclic Proof Extracting Ordering Information for Infinite Descent 1 School of Computing, University of Kent, Canterbury, UK 2 Department of Computer Science, UCL, London, UK Reuben N. S. Rowe 1 James Brotherston 2 TABLEAUX,


slide-1
SLIDE 1

Realizability in Cyclic Proof

Extracting Ordering Information for Infinite Descent

Reuben N. S. Rowe 1 James Brotherston 2 TABLEAUX, Brasília, Brazil, Tuesday 26th September 2017

1School of Computing, University of Kent, Canterbury, UK 2Department of Computer Science, UCL, London, UK

slide-2
SLIDE 2

Motivation: Program Termination

struct ll { int data; ll *next; } list x n n x NULL list x->next n 1 void rev(ll *x) { /* reverses list */ } void shuffle(ll *x) { list x n } { if ( x != NULL ) { { list x->next n 1 } ll *y = x -> next; { y x->next list y n 1 } rev(y); { y x->next list y n 1 } shuffle(y); { y x->next list y n 1 } } } { list x n }

1/15

slide-3
SLIDE 3

Motivation: Program Termination

struct ll { int data; ll *next; } list(x, n) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next, n − 1) void rev(ll *x) { /* reverses list */ } void shuffle(ll *x) { list x n } { if ( x != NULL ) { { list x->next n 1 } ll *y = x -> next; { y x->next list y n 1 } rev(y); { y x->next list y n 1 } shuffle(y); { y x->next list y n 1 } } } { list x n }

1/15

slide-4
SLIDE 4

Motivation: Program Termination

struct ll { int data; ll *next; } list(x, n) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next, n − 1) void rev(ll *x) { /* reverses list */ } void shuffle(ll *x) { list(x, n) } { if ( x != NULL ) { { list x->next n 1 } ll *y = x -> next; { y x->next list y n 1 } rev(y); { y x->next list y n 1 } shuffle(y); { y x->next list y n 1 } } } { list(x, n) }

1/15

slide-5
SLIDE 5

Motivation: Program Termination

struct ll { int data; ll *next; } list(x, n) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next, n − 1) void rev(ll *x) { /* reverses list */ } void shuffle(ll *x) { list(x, n) } { if ( x != NULL ) { { list(x->next, n − 1) } ll *y = x -> next; { y = x->next ∧ list(y, n − 1) } rev(y); { y x->next list y n 1 } shuffle(y); { y x->next list y n 1 } } } { list(x, n) }

1/15

slide-6
SLIDE 6

Motivation: Program Termination

struct ll { int data; ll *next; } list(x, n) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next, n − 1) void rev(ll *x) { list(x, n) } { . . . } { list(x, n) } void shuffle(ll *x) { list(x, n) } { if ( x != NULL ) { { list(x->next, n − 1) } ll *y = x -> next; { y = x->next ∧ list(y, n − 1) } rev(y); { y x->next list y n 1 } shuffle(y); { y x->next list y n 1 } } } { list(x, n) }

1/15

slide-7
SLIDE 7

Motivation: Program Termination

struct ll { int data; ll *next; } list(x, n) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next, n − 1) void rev(ll *x) { list(x, n) } { . . . } { list(x, n) } void shuffle(ll *x) { list(x, n) } { if ( x != NULL ) { { list(x->next, n − 1) } ll *y = x -> next; { y = x->next ∧ list(y, n − 1) } rev(y); { y x->next list y n 1 } shuffle(y); { y x->next list y n 1 } } } { list(x, n) }

1/15

slide-8
SLIDE 8

Motivation: Program Termination

struct ll { int data; ll *next; } list(x, n) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next, n − 1) void rev(ll *x) { list(x, n) } { . . . } { list(x, n) } void shuffle(ll *x) { list(x, n) } { if ( x != NULL ) { { list(x->next, n − 1) } ll *y = x -> next; { y = x->next ∧ list(y, n − 1) } rev(y); { y = x->next ∧ list(y, n − 1) } shuffle(y); { y x->next list y n 1 } } } { list(x, n) }

1/15

slide-9
SLIDE 9

Motivation: Program Termination

struct ll { int data; ll *next; } list(x, n) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next, n − 1) void rev(ll *x) { list(x, n) } { . . . } { list(x, n) } void shuffle(ll *x) { list(x, n) } { if ( x != NULL ) { { list(x->next, n − 1) } ll *y = x -> next; { y = x->next ∧ list(y, n − 1) } rev(y); { y = x->next ∧ list(y, n − 1) } shuffle(y); { y x->next list y n 1 } } } { list(x, n) }

1/15

slide-10
SLIDE 10

Motivation: Program Termination

struct ll { int data; ll *next; } list(x, n) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next, n − 1) void rev(ll *x) { list(x, n) } { . . . } { list(x, n) } void shuffle(ll *x) { list(x, n) } { if ( x != NULL ) { { list(x->next, n − 1) } ll *y = x -> next; { y = x->next ∧ list(y, n − 1) } rev(y); { y = x->next ∧ list(y, n − 1) } shuffle(y); { y = x->next ∧ list(y, n − 1) } } } { list(x, n) }

1/15

slide-11
SLIDE 11

Motivation: Program Termination

struct ll { int data; ll *next; } list(x) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next) void rev(ll *x) { listα(x) } { . . . } { listα(x) } void shuffle(ll *x) { listα(x) } { if ( x != NULL ) { { listβ(x->next) ∧ β < α } ll *y = x -> next; { y = x->next ∧ listβ(y) ∧ β < α } rev(y); { y = x->next ∧ listβ(y) ∧ β < α } shuffle(y); { y = x->next ∧ listβ(y) ∧ β < α } } } { listα(x) }

1/15

slide-12
SLIDE 12

Motivation: Program Termination

struct ll { int data; ll *next; } list(x) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next) void rev(ll *x) { listα(x) } { . . . } { listα(x) } void shuffle(ll *x) { listα(x) } { if ( x != NULL ) { { listβ(x->next) ∧ β < α } ll *y = x -> next; { y = x->next ∧ listβ(y) ∧ β < α } rev(y); { y = x->next ∧ listβ(y) ∧ β < α } shuffle(y); { y = x->next ∧ listβ(y) ∧ β < α } } } { listα(x) } [ [·] ] : Formulas → ℘(Models) [ [·] ]⊥ ⊑ [ [·] ]1 ⊑ . . . [ [·] ]α ⊑ [ [·] ]α+1 ⊑ . . . ⊑ [ [·] ] P x Q y Q y P x

1/15

slide-13
SLIDE 13

Motivation: Program Termination

struct ll { int data; ll *next; } list(x) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next) void rev(ll *x) { listα(x) } { . . . } { listα(x) } void shuffle(ll *x) { listα(x) } { if ( x != NULL ) { { listβ(x->next) ∧ β < α } ll *y = x -> next; { y = x->next ∧ listβ(y) ∧ β < α } rev(y); { y = x->next ∧ listβ(y) ∧ β < α } shuffle(y); { y = x->next ∧ listβ(y) ∧ β < α } } } { listα(x) } [ [·] ] : Formulas → ℘(Models) [ [·] ]⊥ ⊑ [ [·] ]1 ⊑ . . . [ [·] ]α ⊑ [ [·] ]α+1 ⊑ . . . ⊑ [ [·] ] ∀α . [ [P(⃗ x)] ]α ⊆ [ [Q(⃗ y)] ]α ≡ Q(⃗ y) ≤ P(⃗ x)

1/15

slide-14
SLIDE 14

Motivation: Program Termination

struct ll { int data; ll *next; } list(x) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next) void rev(ll *x) { listα(x) } { . . . } { listα(x) } void shuffle(ll *x) { listα(x) } { if ( x != NULL ) { { listβ(x->next) ∧ β < α } ll *y = x -> next; { y = x->next ∧ listβ(y) ∧ β < α } rev(y); { y = x->next ∧ listβ(y) ∧ β < α } shuffle(y); { y = x->next ∧ listβ(y) ∧ β < α } } } { listα(x) } Intra-procedural analysis produces verification conditions, in the form of entailments, e.g. x ̸= NULL ∧ y = x->next ∧ list(y) ⊢ list(x)

1/15

slide-15
SLIDE 15

Motivation: Program Termination

struct ll { int data; ll *next; } list(x) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next) void rev(ll *x) { listα(x) } { . . . } { listα(x) } void shuffle(ll *x) { listα(x) } { if ( x != NULL ) { { listβ(x->next) ∧ β < α } ll *y = x -> next; { y = x->next ∧ listβ(y) ∧ β < α } rev(y); { y = x->next ∧ listβ(y) ∧ β < α } shuffle(y); { y = x->next ∧ listβ(y) ∧ β < α } } } { listα(x) }

  • .

. . . . . . .

(Axiom)

  • ·

· · ·

  • . . . . . •

(Inference)

  • ·

· · . . . P(⃗ x) . . . ⊢ . . . Q(⃗ y) . . .

1/15

slide-16
SLIDE 16

Motivation: Program Termination

struct ll { int data; ll *next; } list(x) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next) void rev(ll *x) { listα(x) } { . . . } { listα(x) } void shuffle(ll *x) { listα(x) } { if ( x != NULL ) { { listβ(x->next) ∧ β < α } ll *y = x -> next; { y = x->next ∧ listβ(y) ∧ β < α } rev(y); { y = x->next ∧ listβ(y) ∧ β < α } shuffle(y); { y = x->next ∧ listβ(y) ∧ β < α } } } { listα(x) }

  • .

. . . . . . .

(Axiom)

  • ·

· · ·

  • . . . . . •

(Inference)

  • ·

· · . . . P(⃗ x) . . . ⊢ . . . Q(⃗ y) . . .

Q(⃗ y) ≤? P(⃗ x)

1/15

slide-17
SLIDE 17

Motivation: Program Termination

struct ll { int data; ll *next; } list(x) ⇔ (n = 0 ∧ x = NULL) ∨ list(x->next) void rev(ll *x) { listα(x) } { . . . } { listα(x) } void shuffle(ll *x) { listα(x) } { if ( x != NULL ) { { listβ(x->next) ∧ β < α } ll *y = x -> next; { y = x->next ∧ listβ(y) ∧ β < α } rev(y); { y = x->next ∧ listβ(y) ∧ β < α } shuffle(y); { y = x->next ∧ listβ(y) ∧ β < α } } } { listα(x) }

  • .

. . . . . . .

(Axiom)

  • ·

· · ·

  • . . . . . •

(Inference)

  • ·

· · . . . P(⃗ x) . . . ⊢ . . . Q(⃗ y) . . .

Q(⃗ y) <? P(⃗ x)

1/15

slide-18
SLIDE 18

Overview of Results

We show that:

  • Information about semantic inclusions between inductive

predicates can be extracted from cyclic proofs of entailments

  • These inclusions hold when the proof graph satisfies a

structural (realizability) condition that we define

  • The realizability condition is equivalent to a containment

between two weighted automata that can be constructed from the proof graph

  • Under certain extra structural conditions, this containment

falls within existing decidability results

2/15

slide-19
SLIDE 19

Overview of Results

We show that:

  • Information about semantic inclusions between inductive

predicates can be extracted from cyclic proofs of entailments

  • These inclusions hold when the proof graph satisfies a

structural (realizability) condition that we define

  • The realizability condition is equivalent to a containment

between two weighted automata that can be constructed from the proof graph

  • Under certain extra structural conditions, this containment

falls within existing decidability results

2/15

slide-20
SLIDE 20

Overview of Results

We show that:

  • Information about semantic inclusions between inductive

predicates can be extracted from cyclic proofs of entailments

  • These inclusions hold when the proof graph satisfies a

structural (realizability) condition that we define

  • The realizability condition is equivalent to a containment

between two weighted automata that can be constructed from the proof graph

  • Under certain extra structural conditions, this containment

falls within existing decidability results

2/15

slide-21
SLIDE 21

Overview of Results

We show that:

  • Information about semantic inclusions between inductive

predicates can be extracted from cyclic proofs of entailments

  • These inclusions hold when the proof graph satisfies a

structural (realizability) condition that we define

  • The realizability condition is equivalent to a containment

between two weighted automata that can be constructed from the proof graph

  • Under certain extra structural conditions, this containment

falls within existing decidability results

2/15

slide-22
SLIDE 22

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x

3/15

slide-23
SLIDE 23

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x

3/15

slide-24
SLIDE 24

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x

3/15

slide-25
SLIDE 25

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x

3/15

slide-26
SLIDE 26

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x

3/15

slide-27
SLIDE 27

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-28
SLIDE 28

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-29
SLIDE 29

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-30
SLIDE 30

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-31
SLIDE 31

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-32
SLIDE 32

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-33
SLIDE 33

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-34
SLIDE 34

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-35
SLIDE 35

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-36
SLIDE 36

A Cyclic Proof in LK Sequent Calculus with Equality

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x A cyclic proof graph is globally sound when every infinite path (going from conclusion to premise) is eventually followed by a trace of predicate formulas (on the left-hand side of sequents) which progresses (through a case-split) infinitely often

3/15

slide-37
SLIDE 37

Inductive Predicate Definitions and their Semantics

Definition (Inductive Definition Set)

An inductive definition set contains productions P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P0 ⃗ t0

Definition (Characteristic Operators)

Inductive definition sets Φ induce characteristic operators φΦ on predicate interpretations X (functions from predicate formulas to sets of models): φΦ(X)(P⃗ tθ) = {m | P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P⃗ t ∈ Φ, m ∈ X(Pi ⃗ tiθ) for all 1 ≤ i ≤ j} The ordered set of predicate interpretations is a complete lattice Characteristic operators are monotone wrt We interpret predicates using the least fixed point,

def

X X

4/15

slide-38
SLIDE 38

Inductive Predicate Definitions and their Semantics

Definition (Inductive Definition Set)

An inductive definition set contains productions P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P0 ⃗ t0

Definition (Characteristic Operators)

Inductive definition sets Φ induce characteristic operators φΦ on predicate interpretations X (functions from predicate formulas to sets of models): φΦ(X)(P⃗ tθ) = {m | P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P⃗ t ∈ Φ, m ∈ X(Pi ⃗ tiθ) for all 1 ≤ i ≤ j} The ordered set of predicate interpretations (X, ⊑) is a complete lattice Characteristic operators are monotone wrt We interpret predicates using the least fixed point,

def

X X

4/15

slide-39
SLIDE 39

Inductive Predicate Definitions and their Semantics

Definition (Inductive Definition Set)

An inductive definition set contains productions P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P0 ⃗ t0

Definition (Characteristic Operators)

Inductive definition sets Φ induce characteristic operators φΦ on predicate interpretations X (functions from predicate formulas to sets of models): φΦ(X)(P⃗ tθ) = {m | P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P⃗ t ∈ Φ, m ∈ X(Pi ⃗ tiθ) for all 1 ≤ i ≤ j} The ordered set of predicate interpretations (X, ⊑) is a complete lattice Characteristic operators φΦ are monotone wrt ⊑ We interpret predicates using the least fixed point,

def

X X

4/15

slide-40
SLIDE 40

Inductive Predicate Definitions and their Semantics

Definition (Inductive Definition Set)

An inductive definition set contains productions P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P0 ⃗ t0

Definition (Characteristic Operators)

Inductive definition sets Φ induce characteristic operators φΦ on predicate interpretations X (functions from predicate formulas to sets of models): φΦ(X)(P⃗ tθ) = {m | P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P⃗ t ∈ Φ, m ∈ X(Pi ⃗ tiθ) for all 1 ≤ i ≤ j} The ordered set of predicate interpretations (X, ⊑) is a complete lattice Characteristic operators φΦ are monotone wrt ⊑ We interpret predicates using the least fixed point, [ [·] ]Φ

def

= µX.φΦ(X) X⊥ ⊑ φΦ(X⊥) ⊑ φΦ(φΦ(X⊥)) ⊑ . . . ⊑ φα

Φ(X⊥) ⊑ . . . ⊑ µX.φΦ(X)

4/15

slide-41
SLIDE 41

Inductive Predicate Definitions and their Semantics

Definition (Inductive Definition Set)

An inductive definition set contains productions P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P0 ⃗ t0

Definition (Characteristic Operators)

Inductive definition sets Φ induce characteristic operators φΦ on predicate interpretations X (functions from predicate formulas to sets of models): φΦ(X)(P⃗ tθ) = {m | P1 ⃗ t1, . . . , Pj ⃗ tj ⇒ P⃗ t ∈ Φ, m ∈ X(Pi ⃗ tiθ) for all 1 ≤ i ≤ j} The ordered set of predicate interpretations (X, ⊑) is a complete lattice Characteristic operators φΦ are monotone wrt ⊑ We interpret predicates using the least fixed point, [ [·] ]Φ

def

= µX.φΦ(X) [ [·] ]Φ

0 ⊑ [

[·] ]Φ

1 ⊑ [

[·] ]Φ

2 ⊑ . . . ⊑ [

[·] ]Φ

α ⊑ . . . [

[·] ]Φ

4/15

slide-42
SLIDE 42

Cyclic Proof Formalises Infinite Descent

  • Suppose, for contradiction, that the conclusion of the

proof is not valid

  • That is, there is a counter-model of the sequent
  • By local soundness of the inference rules, we obtain an

infinite sequence of counter-models for some infinite path in the proof

  • Each model can be mapped to an ever smaller

approximation P t in which it appears

  • These strictly decrease over a case-split
  • By global soundness of the proof, this gives an infinitely

descending chain in

  • But

is a well-ordered set contradiction!

5/15

slide-43
SLIDE 43

Cyclic Proof Formalises Infinite Descent

  • Suppose, for contradiction, that the conclusion of the

proof is not valid

  • That is, there is a counter-model of the sequent
  • By local soundness of the inference rules, we obtain an

infinite sequence of counter-models for some infinite path in the proof

  • Each model can be mapped to an ever smaller

approximation [ [P⃗ t] ]Φ

α in which it appears

  • These strictly decrease over a case-split
  • By global soundness of the proof, this gives an infinitely

descending chain in

  • But

is a well-ordered set contradiction!

5/15

slide-44
SLIDE 44

Cyclic Proof Formalises Infinite Descent

  • Suppose, for contradiction, that the conclusion of the

proof is not valid

  • That is, there is a counter-model of the sequent
  • By local soundness of the inference rules, we obtain an

infinite sequence of counter-models for some infinite path in the proof

  • Each model can be mapped to an ever smaller

approximation [ [P⃗ t] ]Φ

α in which it appears

  • These strictly decrease over a case-split
  • By global soundness of the proof, this gives an infinitely

descending chain in (X, ⊑)

  • But (X, ⊑) is a well-ordered set ⇒ contradiction!

5/15

slide-45
SLIDE 45

Extracting Semantic Orderings from Cyclic Proofs

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x

6/15

slide-46
SLIDE 46

Extracting Semantic Orderings from Cyclic Proofs

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x The inductive definitions/semantics give immediately, e.g. ∀m, α : m ∈ [ [E sx] ]α ⇒ m ∈ [ [O x] ]α and even ∀m, α : m ∈ [ [E sx] ]α ⇒ ∃β < α.m ∈ [ [O x] ]β

6/15

slide-47
SLIDE 47

Extracting Semantic Orderings from Cyclic Proofs

⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx (N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x The global soundness already gives ∀m : m ∈ [ [E x] ] ⇒ m ∈ [ [N x] ] but we would also like to know whether ∀m, α : m ∈ [ [E x] ]α ⇒ m ∈ [ [N x] ]α i.e. N x ≤ E x

6/15

slide-48
SLIDE 48

Extracting Semantic Orderings: Basic Ideas

To extract these semantic relationships from cyclic proofs:

  • We have to consider traces along the right-hand side of

sequents, which are

  • maximally finite
  • matched by some left-hand trace along the same path
  • We then count the number of times each trace progresses
  • the left-hand one must progress at least as often as the

right-hand one

7/15

slide-49
SLIDE 49

Extracting Semantic Orderings: Example

(N R1) ⊢ N 0 (=L) x = 0 ⊢ N x E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x ⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx

8/15

slide-50
SLIDE 50

Extracting Semantic Orderings: Example

(N R1) ⊢ N 0 (=L) x = 0 ⊢ N x (Ax) N ss0 ⊢ N ss0 (N R2) N ss0 ⊢ N sss0 (=L) y = sss0, N ss0 ⊢ N y E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x ⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx N ss0 ⇒ O sss0

8/15

slide-51
SLIDE 51

Extracting Semantic Orderings: Example

(N R1) ⊢ N 0 (=L) x = 0 ⊢ N x (Ax) N ss0 ⊢ N ss0 (N R2) N ss0 ⊢ N sss0 (=L) y = sss0, N ss0 ⊢ N y E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x ⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx N ss0 ⇒ O sss0

8/15

slide-52
SLIDE 52

Extracting Semantic Orderings: Example

(N R1) ⊢ N 0 (=L) x = 0 ⊢ N x (Ax) N ss0 ⊢ N ss0 (N R2) N ss0 ⊢ N sss0 (=L) y = sss0, N ss0 ⊢ N y E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x ⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx N ss0 ⇒ O sss0

8/15

slide-53
SLIDE 53

Extracting Semantic Orderings: Example

(N R1) ⊢ N 0 (=L) x = 0 ⊢ N x (Ax) N ss0 ⊢ N ss0 (N R2) N ss0 ⊢ N sss0 (=L) y = sss0, N ss0 ⊢ N y E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x ⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx N ss0 ⇒ O sss0 This trace is

  • fully maximal: the final predicate is

introduced by its rule

  • grounded: the final predicate is derived

from a zero premise production (n.b. ∀m : m ∈ [ [N 0] ]1)

8/15

slide-54
SLIDE 54

Extracting Semantic Orderings: Example

(N R1) ⊢ N 0 (=L) x = 0 ⊢ N x (Ax) N ss0 ⊢ N ss0 (N R2) N ss0 ⊢ N sss0 (=L) y = sss0, N ss0 ⊢ N y E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x ⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx N ss0 ⇒ O sss0 This trace is partially maximal: the final predicate is the active formula of an axiom

8/15

slide-55
SLIDE 55

Extracting Semantic Orderings: Example

(N R1) ⊢ N 0 (=L) x = 0 ⊢ N x (Ax) N ss0 ⊢ N ss0 (N R2) N ss0 ⊢ N sss0 (=L) y = sss0, N ss0 ⊢ N y E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x ⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx N ss0 ⇒ O sss0

8/15

slide-56
SLIDE 56

Extracting Semantic Orderings: Example

(N R1) ⊢ N 0 (=L) x = 0 ⊢ N x (Ax) N ss0 ⊢ N ss0 (N R2) N ss0 ⊢ N sss0 (=L) y = sss0, N ss0 ⊢ N y E x ⊢ N x (Subst) E z ⊢ N z (N R2) E z ⊢ N sz (=L) y = sz, E z ⊢ N y (Case O) O y ⊢ N y (N R2) O y ⊢ N sy (=L) x = sy, O y ⊢ N x (Case E) E x ⊢ N x ⇒ N 0 N x ⇒ N sx ⇒ E 0 O x ⇒ E sx E x ⇒ O sx N ss0 ⇒ O sss0

8/15

slide-57
SLIDE 57

Extracting Semantic Orderings: A Realizability Condition

Definition (Realizability Condition) For every maximal right-hand trace, there must exist a left-hand trace following some prefix of the same path such that:

  • either the right-hand trace is grounded, or it is partially

maximal with the left-hand trace matching in the length and final predicate

  • right unfoldings ≤ left unfoldings

9/15

slide-58
SLIDE 58

Soundness of the Realizability Condition

Theorem

Suppose P is a cyclic proof of P⃗ x ⊢ Q⃗ y satisfying the realizability condition, then [ [P⃗ x] ]α ⊆ [ [Q⃗ y] ]α, for all α (i.e. Q⃗ y ≤ P⃗ x)

Proof.

Pick a model m P x (i.e. m P x )

  • m corresponds to a maximal right-hand trace in
  • Since

is a proof P x Q y is valid, in particular m Q y

  • The number of unfoldings in this right-hand trace is an upper bound
  • n the least approximation Q y

containing m

  • The number of unfoldings in any left-hand trace following the same

path is a lower bound on the least approximation P x containing m

  • From the realizability condition, we have that

10/15

slide-59
SLIDE 59

Soundness of the Realizability Condition

Theorem

Suppose P is a cyclic proof of P⃗ x ⊢ Q⃗ y satisfying the realizability condition, then [ [P⃗ x] ]α ⊆ [ [Q⃗ y] ]α, for all α (i.e. Q⃗ y ≤ P⃗ x)

Proof.

Pick a model m ∈ [ [P⃗ x] ]α (i.e. ∃ β ≤ α : m ∈ [ [P⃗ x] ]β)

  • m corresponds to a maximal right-hand trace in P
  • Since P is a proof P⃗

x ⊢ Q⃗ y is valid, in particular m ∈ [ [Q⃗ y] ]

  • The number of unfoldings in this right-hand trace is an upper bound
  • n the least approximation [

[Q⃗ y] ]γ containing m

  • The number of unfoldings in any left-hand trace following the same

path is a lower bound on the least approximation [ [P⃗ x] ]δ containing m

  • From the realizability condition, we have that δ ≥ γ

10/15

slide-60
SLIDE 60

Weighted Automata

Definition (Weighted Automata)

Let Σ be an alphabet, and (V, ⊕, ⊗) a semiring of weights. A weighted automaton A is a tuple (Q, qI, F, γ) consisting of a set Q of states containing an initial state qI ∈ Q, a set F ⊆ Q of final states, and a weighted transition function γ : (Q × Σ × Q) → V.

  • 1. The value of a run of

is the semiring product of all its transitions

  • 2. The value of a word is the semiring sum of all runs accepting that word
  • 3. The quantitative language

is the function V computed by

Definition (Weighted Inclusion)

1 2 if and only if for every word w such that 1 w is defined, 2 w is

also defined and

1 w 2 w

Sum automata are weighted automata over max

11/15

slide-61
SLIDE 61

Weighted Automata

Definition (Weighted Automata)

Let Σ be an alphabet, and (V, ⊕, ⊗) a semiring of weights. A weighted automaton A is a tuple (Q, qI, F, γ) consisting of a set Q of states containing an initial state qI ∈ Q, a set F ⊆ Q of final states, and a weighted transition function γ : (Q × Σ × Q) → V.

  • 1. The value of a run of A is the semiring product of all its transitions
  • 2. The value of a word is the semiring sum of all runs accepting that word
  • 3. The quantitative language LA is the function Σ∗ ⇀ V computed by A

Definition (Weighted Inclusion)

1 2 if and only if for every word w such that 1 w is defined, 2 w is

also defined and

1 w 2 w

Sum automata are weighted automata over max

11/15

slide-62
SLIDE 62

Weighted Automata

Definition (Weighted Automata)

Let Σ be an alphabet, and (V, ⊕, ⊗) a semiring of weights. A weighted automaton A is a tuple (Q, qI, F, γ) consisting of a set Q of states containing an initial state qI ∈ Q, a set F ⊆ Q of final states, and a weighted transition function γ : (Q × Σ × Q) → V.

  • 1. The value of a run of A is the semiring product of all its transitions
  • 2. The value of a word is the semiring sum of all runs accepting that word
  • 3. The quantitative language LA is the function Σ∗ ⇀ V computed by A

Definition (Weighted Inclusion)

L1 ≤ L2 if and only if for every word w such that L1(w) is defined, L2(w) is also defined and L1(w) ≤ L2(w) Sum automata are weighted automata over max

11/15

slide-63
SLIDE 63

Weighted Automata

Definition (Weighted Automata)

Let Σ be an alphabet, and (V, ⊕, ⊗) a semiring of weights. A weighted automaton A is a tuple (Q, qI, F, γ) consisting of a set Q of states containing an initial state qI ∈ Q, a set F ⊆ Q of final states, and a weighted transition function γ : (Q × Σ × Q) → V.

  • 1. The value of a run of A is the semiring product of all its transitions
  • 2. The value of a word is the semiring sum of all runs accepting that word
  • 3. The quantitative language LA is the function Σ∗ ⇀ V computed by A

Definition (Weighted Inclusion)

L1 ≤ L2 if and only if for every word w such that L1(w) is defined, L2(w) is also defined and L1(w) ≤ L2(w) Sum automata are weighted automata over (N, +, max)

11/15

slide-64
SLIDE 64

Weighted Automata: Results

Definition (Weighted Inclusion)

L1 ≤ L2 if and only if for every word w such that L1(w) is defined, L2(w) is also defined and L1(w) ≤ L2(w)

Theorem

Given two quantitative languages (weighted automata) L1 and L2, it is undecidable whether L1 ≤ L2 (Krob ’94, Almagor Et Al. ’11)

Definition

A weighted automaton is called finite-valued if there exists a bound on the number of distinct values of accepting runs on any given word

Theorem

Given two finite-valued weighted automata and , it is decidable whether (Filiot, Gentilini & Raskin ’14)

12/15

slide-65
SLIDE 65

Weighted Automata: Results

Definition (Weighted Inclusion)

L1 ≤ L2 if and only if for every word w such that L1(w) is defined, L2(w) is also defined and L1(w) ≤ L2(w)

Theorem

Given two quantitative languages (weighted automata) L1 and L2, it is undecidable whether L1 ≤ L2 (Krob ’94, Almagor Et Al. ’11)

Definition

A weighted automaton is called finite-valued if there exists a bound on the number of distinct values of accepting runs on any given word

Theorem

Given two finite-valued weighted automata A and B, it is decidable whether LA ≤ LB (Filiot, Gentilini & Raskin ’14)

12/15

slide-66
SLIDE 66

Weighted Automata from Cyclic Entailment Proofs

Given a cyclic entailment proof P, we can construct two kinds of finite-valued sum automata, AP[n] (n ∈ N) and CP, which count the unfoldings in left- and right-hand traces, respectively:

  • The words accepted are paths in the proof from the root sequent
  • The value of a path is the maximum number of unfoldings in the traces

along the path

  • CP only counts traces following the full path
  • the AP[n] count traces following any prefix of the path
  • Each AP[n] considers only a subset of the paths in the proof
  • A complete automaton can be constructed but is not, in general,

finite-valued

  • CP is grounded when all final states correspond to ground predicate

instances

13/15

slide-67
SLIDE 67

Deciding the Realizability Condition

The construction of the weighted automata allows the following result:

Theorem

Let P be a cyclic entailment proof which is dynamic and balanced; then P satisfies the realizability condition if and only if CP ≤ AP[N] and CP is grounded (where N is a function of P)

  • The properties of balance and dynamism are additional structural

properties of the cycles in P which ensure completenss of the bound N

  • The bound N is a function of graph-theoretic quantities relating to the

cycles in proofs1

1More details in the paper and technical report!

14/15

slide-68
SLIDE 68

Conclusions

  • We have shown that information about inclusions between the

semantics of inductive predicates can be extracted from cyclic proofs

  • f entailments
  • This information can be used to construct ranking functions for

programs

  • Our results are formulated abstractly, and so hold for any cyclic proof

system whose rules satisfy certain properties (e.g. separation logic)

  • We use the term realizability because we extract semantic information

from the proofs

15/15

slide-69
SLIDE 69

Future Work

  • Implement the decision procedure within the cyclic proof-based

verification framework Cyclist

  • Evaluate to what extent entailments found ‘in the wild’ satisfy the

realizability condition

  • Extend the results to better handle cuts in proofs
  • Investigate further theoretical questions:
  • are there weaker structural properties of proofs that still admit

completeness with the approximate automata

  • If the semantic inclusion [

[P⃗ x] ]α ⊆ [ [Q⃗ y] ]α holds, is there a cyclic proof of P⃗ x ⊢ Q⃗ y satisfying the realizability condition? 15/15

slide-70
SLIDE 70

Bootstrapping Cyclic Entailment Systems

Suppose we can deduce from a proof of Γ, P⃗ t ⊢ Σ, Q⃗ u that Q⃗ u ≤ P⃗ t Then we can safely form a well-founded trace across the active formula Γ, P⃗ t ⊢ Σ, Q⃗ u Q⃗ u, Π ⊢ ∆ Γ, P⃗ t, Π ⊢ Σ, ∆ This is explicitly forbidden in existing cyclic proof systems, precisely because there is no way to ensure in general that there is an inclusion between [ [P⃗ t] ]α and [ [Q⃗ u] ]α Thus, our results can be used to bootstrap and enhance cylic entailment systems themselves

15/15