Skip to content

Commit

Permalink
unary coinductive predicate example
Browse files Browse the repository at this point in the history
  • Loading branch information
alexkeizer committed Aug 17, 2024
1 parent b5f490d commit a554c91
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions Qpf/CoindPredicates.lean
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,18 @@ structure FSM where
/-- if `o s = none`, it's a silent step -/
o : S → Option Bool


coinductive Const (b? : Option Bool) (fsm : FSM) : fsm.S → Prop
| step {s} :
fsm.o s = b? → Const (fsm.d s) → Const s

/--
info: @[reducible] def WeakBisimTest.Const.Is : Option Bool → (fsm : FSM) → (fsm.S → Prop) → Prop :=
fun b? fsm Const => ∀ {s : fsm.S}, Const s → fsm.o s = b? ∧ Const (fsm.d s)
-/
#guard_msgs in #print Const.Is


coinductive WeakBisim (fsm : FSM) : fsm.S → fsm.S → Prop :=
| step {s t : fsm.S} :
(fsm.o s = fsm.o t)
Expand Down

0 comments on commit a554c91

Please sign in to comment.