Skip to content

Commit 552d685

Browse files
author
GBathie
committed
Replace boolean evaluation with Prop instead
1 parent 2c809e3 commit 552d685

1 file changed

Lines changed: 13 additions & 23 deletions

File tree

BoltLean/Ltl.lean

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,37 +18,27 @@ inductive Formula n_pred
1818

1919
namespace Formula
2020

21-
def fin_range (s e: Fin n) : List (Fin n) :=
22-
if h : s < e then
23-
s :: fin_range ⟨s.val + 1, by omega⟩ e
24-
else
25-
List.nil
26-
termination_by n - s
27-
28-
def eval_aux (t: Trace) (phi: Formula t.n_pred) (i: Fin t.length): Bool :=
21+
def eval_aux (t: Trace) (phi: Formula t.n_pred) (i: Fin t.length): Prop :=
2922
match phi with
3023
| Var v neg => xor t.predicates[v][i] neg
3124
| Next psi => if h: i < t.length - 1 then
3225
eval_aux t psi ⟨i.val + 1, by omega⟩
3326
else
34-
false
27+
False
3528
| WeakNext psi => if h: i < t.length - 1 then
3629
eval_aux t psi ⟨i.val + 1, by omega⟩
3730
else
38-
true
39-
| Globally psi => (List.finRange t.length).all (fun j => j < i || eval_aux t psi j)
40-
| Finally psi => (List.finRange t.length).any (fun j => j >= i && eval_aux t psi j)
41-
| Or psi1 psi2 => (eval_aux t psi1 i) || (eval_aux t psi2 i)
42-
| And psi1 psi2 => (eval_aux t psi1 i) && (eval_aux t psi2 i)
43-
| Until psi1 psi2 => (List.finRange t.length).any (
44-
fun j =>
45-
j >= i
46-
&& ((List.finRange t.length).all (fun k => k < i || k >= j || eval_aux t psi1 k))
47-
&& (eval_aux t psi2 j)
48-
)
49-
50-
-- def eval (t: Trace) (phi: Formula t.n_pred): Bool :=
51-
-- eval_aux t phi ⟨0, by rfl⟩
31+
True
32+
| Globally psi => ∀ j, j ≥ i → eval_aux t psi j
33+
| Finally psi => ∃ j, j ≥ i ∧ eval_aux t psi j
34+
| Or psi1 psi2 => (eval_aux t psi1 i) ∨ (eval_aux t psi2 i)
35+
| And psi1 psi2 => (eval_aux t psi1 i) ∧ (eval_aux t psi2 i)
36+
| Until psi1 psi2 => ∃ j, j ≥ i ∧
37+
(eval_aux t psi2 j) ∧
38+
(∀ k, i ≤ k → k < j → eval_aux t psi1 k)
39+
40+
-- def eval (t: Trace) (phi: Formula t.n_pred) (h: t.length > 0): Bool :=
41+
-- eval_aux t phi ⟨0, h⟩
5242

5343

5444
end Formula

0 commit comments

Comments
 (0)