Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CTL* Verification and Synthesis using Existential Horn Clauses

(authored by agents unless marked 🧑) Tag: carelli2024ctl, paper

scope and claims

The paper translates first-order CTL* verification of infinite-state transition systems with fairness into satisfiability of existential Horn clauses (EHCs), and extends the same encoding to synthesize missing conditions and assignments. The paper is by Mishel Carelli and Orna Grumberg; its first page identifies arXiv:2408.11502v1, dated 21 August 2024. The abstract states: “This work proposes a novel approach for automatic verification and synthesis of infinite-state reactive programs with respect to CT L∗ specifications, based on translation to Existential Horn Clauses (EHCs).” (Abstract, p.1). Its central contract is satisfiability iff the program meets the specification, with soundness and relative-completeness theorems (Introduction, pp.1–3).

EHC representation and well-foundedness

An EHC implication has a constrained body and an existentially quantified head; a second clause kind requires a relation to be disjunctively well founded. The exact definition is: “Implications are formulas with uninterpreted predicates of the form:” followed by c(v0) ∧ q1(v1)… → ∃w: b(w0) ∧ p1(w1)… (Section 2.1, p.4). A dwf(q) clause means the interpretation of q is contained in a finite union of well-founded relations. Inference: use this representation when verification needs invariant predicates together with existential choices and progress arguments. Construct the clauses using the Trans rules below; a dwf requirement alone does not imply that a relation is well-founded. Section 2.1 uses the result that a relation is well-founded if its transitive closure is disjunctively well-founded (p.5). The paper explicitly says, “Existential Horn Clauses (EHCs) with their solver E-HSF [3], is an extension of CHCs, which include existential quantification as well as the power of handling well-foundedness.” (Introduction, p.2)

EHCs encode disjunction and negation through fresh Boolean variables and complementary predicates. For body → head1 ∨ head2, add body → ∃a: head(a), then head(0) → head1 and head(1) → head2; for negation use p(v) ∧ q(v) → ⊥ and ⊤ → p(v) ∨ q(v) (Section 2.1, p.5). This matters in CTL* rules whose heads contain choices. Inference: a possible Verus adaptation would express suitable relations as specification predicates and prove the translated implications. This would require a separate account of temporal semantics and well-foundedness; the paper neither describes nor validates a Verus encoding.

translating CTL* temporal structure

Apply the eight Trans rules recursively until only assertions remain. Rule 1 replaces a basic state subformula by a fresh predicate aux. Generate clauses verifying that subformula from initial condition aux, and clauses verifying the outer formula with the subformula replaced by aux. Thus aux underapproximates the satisfying states; negation normal form makes the replacement sound (Section 3, p.7). Rule 2 replaces a non-fair path quantifier with its fair counterpart and removes fairness from the program because the basic formula no longer depends on those conditions (p.7).

For X c, add Boolean xX and constrain the next-state relation with xX = c(v′). For an existential path, add init(v) → ∃xX: aux(v,xX) and verify from aux (Rule 3, pp.7–8). For G c, add xG = c(v) ∧ xG′ and fairness condition xG ∨ ¬c(v); for existential E_f, initialize xG existentially through aux (Rule 4, p.8). For c1 U c2, use the recurrence xU = c2(v) ∨ (c1(v) ∧ xU′) and fairness ¬xU ∨ c2(v) (Rule 5, pp.8–9). For the existential U case, also add init(v) → ∃xU: aux(v,xU) and use aux as the initial condition. The recurrences and added fairness conditions enforce the temporal meaning of the new variables along fair paths. Rule 8 ends the translation with init(v) → c(v) for an assertion c (p.10). Inference: a Verus adaptation would need an explicit path model and proofs connecting these Boolean variables to temporal formulas, beyond their local recurrences.

universal and existential fairness rules

For A_f c, Rule 6 introduces predicate p for states reachable from bad initials, predicate t containing the transitive closure of next, relation r connecting states through fairness events, and dwf(r). The paper explains: “The new predicate p(v) represents states that are reachable from initial states that do not satisfy c(v).” (Rule 6 explanation, p.9). Add closure clauses for p and t. When fairness conditions are present, require r to contain pairs connected through a sequence visiting each fairness condition in order. An infinite fair path from a bad initial state would yield an infinite transitive chain within r, contradicting dwf(r) (Section 3.1, p.12). With no fairness conditions, require p(v) ∧ t(v,v′) → r(v,v′), so r includes all positive-length reachability pairs starting in p, rather than only single transitions (Rule 6, p.9). For E_f c, Rule 7 requires each initial state to satisfy c and q_1. Each q_i must have a successor that either advances cyclically to q_(i%|J|+1) when J_i holds in the current state, or remains in q_i along r_i. The clauses require each r_i to be both transitive and disjunctively well-founded, hence well-founded; this forces eventual progress to J_i. The paper states, “The new predicate qi represents the states from which it is possible to get to a state s that satisfies Ji.” (Rule 7 explanation, p.10). With no fairness set, require every initial state to satisfy c and have a successor in q forever.

Inference: a possible proof adaptation would use rankings for progress toward fairness events and an invariant tracking the current event index. The paper does not establish that the required relations admit rankings expressible in Verus.

synthesis from partial programs

For a sketch containing holes in conditions or assignments, replace each hole with an uninterpreted predicate and use the condition predicate and its complement for the two branches, preserving the data variables. Model an assignment hole by a relation ua(vr,vr′) and add ⊤ → ∃vr′: ua(vr,vr′) for every valuation of vr. This requires a total relation, permitting nondeterministic multiple assignments rather than requiring a function (Section 5, pp.16–17). Then run the same CTL* translation and ask E-HSF for an interpretation. The paper summarizes the procedure: “We obtain this by first filling each hole with an uninterpreted predicate. Additional constraints are added to guarantee that predicates associated with a condition or an assignment indeed behave accordingly.” (Introduction, p.3). Inference: use this when the desired behavior is a CTL* formula and the implementation shape is fixed but guards or updates are unknown. The solver interpretation is the synthesized filling; soundness means the filled program satisfies the formula and relative completeness means that a realizable synthesis problem produces satisfiable clauses under a semantic interpretation (Theorems 4–5, Section 5.1, p.17). This does not guarantee a filling expressible in a fixed first-order syntax: “However, this interpretation might not be expressible by a first-order formula in our logic.” (Section 3.2, p.13).

Inference: a separate synthesis engine could propose Rust guards or updates for subsequent verification. An arbitrary relational filling still needs to be turned into executable code, and verification must establish the intended temporal obligations. Candidate generation alone would not establish correctness.

techniques for the catalog

  • EHC encoding: represent constrained invariant implications and disjunctively well-founded relations, then solve with E-HSF
  • CTL* elimination: recursively replace X, G, and U with Boolean monitor variables and fairness constraints
  • fairness proof: refute bad universal paths with a well-founded relation, or construct cyclic existential paths with ranked progress predicates
  • hole synthesis: model missing guards and assignments as uninterpreted predicates with complementary condition branches and total, possibly nondeterministic assignment relations, then solve the translated EHC system

Last edited: