Non-cyclic sorts for first-order satisfiability (or how to win first-order satisfiability at CASC)
Konstantin Korovin1 The University of Manchester
korovin@cs.man.ac.uk
FroCoS 2013
1supported by a Royal Society University Fellowship
Non-cyclic sorts for first-order satisfiability (or how to win - - PowerPoint PPT Presentation
Non-cyclic sorts for first-order satisfiability (or how to win first-order satisfiability at CASC) Konstantin Korovin 1 The University of Manchester korovin@cs.man.ac.uk FroCoS 2013 1 supported by a Royal Society University Fellowship
korovin@cs.man.ac.uk
1supported by a Royal Society University Fellowship
◮ in verification for finding errors in systems ◮ in combinatorial reasoning: scheduling, planning, etc.
◮ in checking consistency of ontologies, theories, axiomatisations ◮ disproving conjectures ◮ ...
2 / 18
◮ in verification for finding errors in systems ◮ in combinatorial reasoning: scheduling, planning, etc.
◮ in checking consistency of ontologies, theories, axiomatisations ◮ disproving conjectures ◮ ...
2 / 18
◮ Finite model finding is recursively enumerable. ◮ But usual first-order reasoning methods such
◮ Propositional logic (FINDER, MACE, Paradox)
◮ Geometric logic (Geo) [de Nivelle, Meng] ◮ Effectively propositional logic (EPR) (DarwinFM, iProver)
3 / 18
◮ Finite model finding is recursively enumerable. ◮ But usual first-order reasoning methods such
◮ Propositional logic (FINDER, MACE, Paradox)
◮ Geometric logic (Geo) [de Nivelle, Meng] ◮ Effectively propositional logic (EPR) (DarwinFM, iProver)
3 / 18
◮ Finite model finding is recursively enumerable. ◮ But usual first-order reasoning methods such
◮ Propositional logic (FINDER, MACE, Paradox)
◮ Geometric logic (Geo) [de Nivelle, Meng] ◮ Effectively propositional logic (EPR) (DarwinFM, iProver)
3 / 18
◮ Finite model finding is recursively enumerable. ◮ But usual first-order reasoning methods such
◮ Propositional logic (FINDER, MACE, Paradox)
◮ Geometric logic (Geo) [de Nivelle, Meng] ◮ Effectively propositional logic (EPR) (DarwinFM, iProver)
3 / 18
◮ Hardware Verification (Intel) ◮ Planning/Scheduling ◮ Finite model finding
4 / 18
◮ Hardware Verification (Intel) ◮ Planning/Scheduling ◮ Finite model finding
4 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x)))
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x)))
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x)))
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x))) ⇒ g(x) ≃ y1 ∨ Q(f (y1))
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x))) ⇒ g(x) ≃ y1 ∨ Q(f (y1)) ⇒
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x))) ⇒ g(x) ≃ y1 ∨ Q(f (y1)) ⇒
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x))) ⇒ g(x) ≃ y1 ∨ Q(f (y1)) ⇒
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x))) ⇒ g(x) ≃ y1 ∨ Q(f (y1)) ⇒
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x))) ⇒ g(x) ≃ y1 ∨ Q(f (y1)) ⇒
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x))) ⇒ g(x) ≃ y1 ∨ Q(f (y1)) ⇒
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ C[t] ⇒ t ≃ x ∨ C[x] ◮ Q(f (g(x))) ⇒ g(x) ≃ y1 ∨ Q(f (y1)) ⇒
◮ f (x1, . . . , xn) ≃ y can be represented by Pf (x1, . . . , xn, y) provided: ◮ Pf is right-unique:
◮ Pf right-total:
5 / 18
◮ essential for getting minimal wrt. size models ◮ but flattening can be bad for performance of reasoning systems
6 / 18
◮ essential for getting minimal wrt. size models ◮ but flattening can be bad for performance of reasoning systems
6 / 18
◮ essential for getting minimal wrt. size models ◮ but flattening can be bad for performance of reasoning systems
6 / 18
◮ the set of all ground terms (the Herbrand universe) is finite
7 / 18
◮ the set of all ground terms (the Herbrand universe) is finite
7 / 18
8 / 18
◮ A sort dependency graph SD(Σ) = S, →
◮ A signature is non-cyclic if there are no cycles in its
◮ The non-cyclic clausal fragment consists of sets of clauses over a
9 / 18
◮ A sort dependency graph SD(Σ) = S, →
◮ A signature is non-cyclic if there are no cycles in its
◮ The non-cyclic clausal fragment consists of sets of clauses over a
9 / 18
◮ A sort dependency graph SD(Σ) = S, →
◮ A signature is non-cyclic if there are no cycles in its
◮ The non-cyclic clausal fragment consists of sets of clauses over a
9 / 18
◮ A sort dependency graph SD(Σ) = S, →
◮ A signature is non-cyclic if there are no cycles in its
◮ The non-cyclic clausal fragment consists of sets of clauses over a
9 / 18
◮ Many problems are almost in the non-cyclic fragment.
◮ cyclic and non-cyclic sorts.
10 / 18
◮ Many problems are almost in the non-cyclic fragment.
◮ cyclic and non-cyclic sorts.
10 / 18
◮ Many problems are almost in the non-cyclic fragment.
◮ cyclic and non-cyclic sorts.
10 / 18
11 / 18
11 / 18
11 / 18
◮ A set of clauses S over a signature Σ and ◮ the non-cyclic decomposition of Σ.
◮ restrict flattening to terms of cyclic sorts, ◮ apply instantiation-based methods to the obtained non-cyclic clauses
12 / 18
◮ A set of clauses S over a signature Σ and ◮ the non-cyclic decomposition of Σ.
◮ restrict flattening to terms of cyclic sorts, ◮ apply instantiation-based methods to the obtained non-cyclic clauses
12 / 18
13 / 18
13 / 18
13 / 18
13 / 18
14 / 18
14 / 18
◮ infer sorts automatically (linear-time)
◮ 4, 090 problems have more than one inferred sort.
◮ 1, 383 pure EPR problems ◮ 2, 578 problems have at least one non-cyclic sort ◮ 56, 679 collective number of sorts ◮ 9, 569 EPR sorts ◮ 18, 502 non-cyclic sorts ◮ most problems combine non-cyclic/cyclic/EPR sorts
15 / 18
◮ infer sorts automatically (linear-time)
◮ 4, 090 problems have more than one inferred sort.
◮ 1, 383 pure EPR problems ◮ 2, 578 problems have at least one non-cyclic sort ◮ 56, 679 collective number of sorts ◮ 9, 569 EPR sorts ◮ 18, 502 non-cyclic sorts ◮ most problems combine non-cyclic/cyclic/EPR sorts
15 / 18
◮ infer sorts automatically (linear-time)
◮ 4, 090 problems have more than one inferred sort.
◮ 1, 383 pure EPR problems ◮ 2, 578 problems have at least one non-cyclic sort ◮ 56, 679 collective number of sorts ◮ 9, 569 EPR sorts ◮ 18, 502 non-cyclic sorts ◮ most problems combine non-cyclic/cyclic/EPR sorts
15 / 18
◮ infer sorts automatically (linear-time)
◮ 4, 090 problems have more than one inferred sort.
◮ 1, 383 pure EPR problems ◮ 2, 578 problems have at least one non-cyclic sort ◮ 56, 679 collective number of sorts ◮ 9, 569 EPR sorts ◮ 18, 502 non-cyclic sorts ◮ most problems combine non-cyclic/cyclic/EPR sorts
15 / 18
16 / 18
◮ based on the Inst-Gen calculus ◮ modular combination of first-order reasoning with MiniSAT ◮ redundancy elimination, indexing, ... ◮ implemented in OCaml ◮ sort-restricted finite model finding, symmetry reduction
◮ For the first time in 10 years the reign of Paradox has been
◮ Paradox is still.... a paradox – very efficient finite model finder.
17 / 18
◮ based on the Inst-Gen calculus ◮ modular combination of first-order reasoning with MiniSAT ◮ redundancy elimination, indexing, ... ◮ implemented in OCaml ◮ sort-restricted finite model finding, symmetry reduction
◮ For the first time in 10 years the reign of Paradox has been
◮ Paradox is still.... a paradox – very efficient finite model finder.
17 / 18
◮ based on the Inst-Gen calculus ◮ modular combination of first-order reasoning with MiniSAT ◮ redundancy elimination, indexing, ... ◮ implemented in OCaml ◮ sort-restricted finite model finding, symmetry reduction
◮ For the first time in 10 years the reign of Paradox has been
◮ Paradox is still.... a paradox – very efficient finite model finder.
17 / 18
◮ The non-cyclic fragment is decidable by instantiation-based methods. ◮ Non-cyclic sort decomposition in linear-time. ◮ Sort-restricted flattening and finite model finding. ◮ More than half of sortified problems in TPTP
◮ Instantiation + sort-restricted finite model finding is a winning
◮ There is flexibility which sorts to flatten, what is the best way? ◮ Can we gain from non-cyclic sorts in theorem proving ? ◮ Combination on non-cyclic fragment with other fragments/theories. ◮ Integration into iProver-Eq.
18 / 18
◮ The non-cyclic fragment is decidable by instantiation-based methods. ◮ Non-cyclic sort decomposition in linear-time. ◮ Sort-restricted flattening and finite model finding. ◮ More than half of sortified problems in TPTP
◮ Instantiation + sort-restricted finite model finding is a winning
◮ There is flexibility which sorts to flatten, what is the best way? ◮ Can we gain from non-cyclic sorts in theorem proving ? ◮ Combination on non-cyclic fragment with other fragments/theories. ◮ Integration into iProver-Eq.
18 / 18