@@ -116,18 +116,18 @@ LEMMA TakeAgree ==
116116 < 2 > 2 . philosophers [ p ] = { }
117117 BY < 2 > 1 , < 1 > 1 DEF Phases , Idle , Hungry , Eating
118118 < 2 > . QED
119- BY < 1 > 1 , < 2 > 2 DEF TakeLeft , TakeLow
119+ BY < 1 > 1 , < 2 > 2 , Zenon DEF TakeLeft , TakeLow
120120< 1 > 2 . CASE TakeLeft ( p ) /\ p % 2 = 0
121- BY < 1 > 2 DEF TakeLeft , TakeHigh
121+ BY < 1 > 2 , Zenon DEF TakeLeft , TakeHigh
122122< 1 > 3 . CASE TakeRight ( p ) /\ p % 2 = 1
123- BY < 1 > 3 DEF TakeRight , TakeHigh
123+ BY < 1 > 3 , Isa DEF TakeRight , TakeHigh
124124< 1 > 4 . CASE TakeRight ( p ) /\ p % 2 = 0
125125 < 2 > 1 . RightFork ( p ) \in P /\ RightFork ( p ) \notin philosophers [ p ]
126126 BY < 1 > 4 , ForksDistinct DEF TakeRight , OnTable
127127 < 2 > 2 . philosophers [ p ] = { }
128128 BY < 2 > 1 , < 1 > 4 DEF Phases , Idle , Hungry , Eating
129129 < 2 > . QED
130- BY < 1 > 4 , < 2 > 2 DEF TakeRight , TakeLow
130+ BY < 1 > 4 , < 2 > 2 , Zenon DEF TakeRight , TakeLow
131131< 1 > . QED
132132 BY < 1 > 1 , < 1 > 2 , < 1 > 3 , < 1 > 4 , Parity
133133
@@ -222,7 +222,7 @@ THEOREM OnTableNext == Inv /\ [Next]_vars => OnTable'
222222< 1 > 3 . ASSUME NEW p \in P , Release ( p )
223223 PROVE g \in forks ' <=> \A r \in P : g \notin philosophers ' [ r ]
224224 < 2 > 1 . CASE g \in { LowFork ( p ) , HighFork ( p ) }
225- BY < 1 > 3 , < 2 > 1 , ReleaseFrame DEF Exclusive
225+ BY < 1 > 3 , < 2 > 1 , ReleaseFrame , Zenon DEF Exclusive
226226 < 2 > 2 . CASE g \notin { LowFork ( p ) , HighFork ( p ) }
227227 < 3 > 1 . \A r \in P : g \in philosophers ' [ r ] <=> g \in philosophers [ r ]
228228 BY < 1 > 3 , < 2 > 2 , ReleaseFrame
@@ -285,10 +285,10 @@ BY InvInit, InvNext, PTL DEF Spec
285285Act ( p ) == TakeLeft ( p ) \/ TakeRight ( p ) \/ Release ( p )
286286
287287LEMMA SpecNext == Spec => [] [ Next ]_ vars
288- BY DEF Spec
288+ BY Isa DEF Spec
289289
290290LEMMA SpecFair == \A q \in P : Spec => SF_ vars ( Act ( q ) )
291- BY DEF Spec , Act
291+ BY Isa DEF Spec , Act
292292
293293\* A step either is a step of q or leaves q's forks alone.
294294LEMMA NextSplit ==
@@ -340,19 +340,19 @@ LEMMA IdleEnabled ==
340340 forks \ { LeftFork ( q ) } >> # << philosophers , forks >>
341341 BY < 1 > 1
342342 < 2 > 3 . ENABLED << TakeLeft ( q ) >>_ vars
343- BY < 1 > 1 , < 1 > 2 , < 2 > 1 , < 2 > 2 , ExpandENABLED DEF TakeLeft , vars
343+ BY < 1 > 1 , < 1 > 2 , < 2 > 1 , < 2 > 2 , ExpandENABLED , Isa DEF TakeLeft , vars
344344 < 2 > . QED
345- BY < 2 > 3 , ExpandENABLED DEF Act , TakeLeft , TakeRight , Release , vars
345+ BY < 2 > 3 , ExpandENABLED , Zenon DEF Act , TakeLeft , TakeRight , Release , vars
346346< 1 > 3 . CASE q % 2 = 0
347347 < 2 > 1 . RightFork ( q ) \in forks
348348 BY < 1 > 3 DEF LowFork
349349 < 2 > 2 . << [ philosophers EXCEPT ! [ q ] = philosophers [ q ] \cup { RightFork ( q ) } ] ,
350350 forks \ { RightFork ( q ) } >> # << philosophers , forks >>
351351 BY < 1 > 1
352352 < 2 > 3 . ENABLED << TakeRight ( q ) >>_ vars
353- BY < 1 > 1 , < 1 > 3 , < 2 > 1 , < 2 > 2 , ExpandENABLED DEF TakeRight , vars
353+ BY < 1 > 1 , < 1 > 3 , < 2 > 1 , < 2 > 2 , ExpandENABLED , Isa DEF TakeRight , vars
354354 < 2 > . QED
355- BY < 2 > 3 , ExpandENABLED DEF Act , TakeLeft , TakeRight , Release , vars
355+ BY < 2 > 3 , ExpandENABLED , Zenon DEF Act , TakeLeft , TakeRight , Release , vars
356356< 1 > . QED
357357 BY < 1 > 2 , < 1 > 3 , Parity
358358
@@ -375,9 +375,9 @@ LEMMA HungryEnabled ==
375375 < 2 > 3 . ( q % 2 = 1 => philosophers [ q ] = { LeftFork ( q ) } ) /\ RightFork ( q ) \in forks
376376 BY < 2 > 1
377377 < 2 > 4 . ENABLED << TakeRight ( q ) >>_ vars
378- BY < 2 > 2 , < 2 > 3 , ExpandENABLED DEF TakeRight , vars
378+ BY < 2 > 2 , < 2 > 3 , ExpandENABLED , Isa DEF TakeRight , vars
379379 < 2 > . QED
380- BY < 2 > 4 , ExpandENABLED DEF Act , TakeLeft , TakeRight , Release , vars
380+ BY < 2 > 4 , ExpandENABLED , Zenon DEF Act , TakeLeft , TakeRight , Release , vars
381381< 1 > 4 . CASE q % 2 = 0
382382 < 2 > 1 . philosophers [ q ] = { RightFork ( q ) } /\ LeftFork ( q ) \in forks
383383 BY < 1 > 1 , < 1 > 4 DEF LowFork , HighFork
@@ -387,9 +387,9 @@ LEMMA HungryEnabled ==
387387 < 2 > 3 . ( q % 2 = 0 => philosophers [ q ] = { RightFork ( q ) } ) /\ LeftFork ( q ) \in forks
388388 BY < 2 > 1
389389 < 2 > 4 . ENABLED << TakeLeft ( q ) >>_ vars
390- BY < 2 > 2 , < 2 > 3 , ExpandENABLED DEF TakeLeft , vars
390+ BY < 2 > 2 , < 2 > 3 , ExpandENABLED , Isa DEF TakeLeft , vars
391391 < 2 > . QED
392- BY < 2 > 4 , ExpandENABLED DEF Act , TakeLeft , TakeRight , Release , vars
392+ BY < 2 > 4 , ExpandENABLED , Zenon DEF Act , TakeLeft , TakeRight , Release , vars
393393< 1 > . QED
394394 BY < 1 > 3 , < 1 > 4 , Parity
395395
@@ -408,9 +408,9 @@ LEMMA EatingEnabled ==
408408 # << philosophers , forks >>
409409 BY < 1 > 1 , < 1 > 2
410410< 1 > 4 . ENABLED << Release ( q ) >>_ vars
411- BY < 1 > 1 , < 1 > 3 , ExpandENABLED DEF Release , vars
411+ BY < 1 > 1 , < 1 > 3 , ExpandENABLED , Isa DEF Release , vars
412412< 1 > . QED
413- BY < 1 > 4 , ExpandENABLED DEF Act , TakeLeft , TakeRight , Release , vars
413+ BY < 1 > 4 , ExpandENABLED , Zenon DEF Act , TakeLeft , TakeRight , Release , vars
414414
415415-----------------------------------------------------------------------------
416416(* **************************************************************************)
@@ -445,7 +445,7 @@ LEMMA IdleHungry ==
445445< 1 > 3 . Inv /\ Idle ( q ) /\ LowFork ( q ) \in forks => ENABLED << Act ( q ) >>_ vars
446446 BY IdleEnabled
447447< 1 > 4 . Spec => SF_ vars ( Act ( q ) )
448- BY SpecFair
448+ BY SpecFair , Isa
449449< 1 > . QED
450450 BY < 1 > 1 , < 1 > 2 , < 1 > 3 , < 1 > 4 , InvSpec , SpecNext , PTL DEF FreeIO , IdleToHungry
451451
@@ -466,7 +466,7 @@ LEMMA HungryEat ==
466466< 1 > 3 . Inv /\ Hungry ( q ) /\ HighFork ( q ) \in forks => ENABLED << Act ( q ) >>_ vars
467467 BY HungryEnabled
468468< 1 > 4 . Spec => SF_ vars ( Act ( q ) )
469- BY SpecFair
469+ BY SpecFair , Isa
470470< 1 > . QED
471471 BY < 1 > 1 , < 1 > 2 , < 1 > 3 , < 1 > 4 , InvSpec , SpecNext , PTL DEF FreeIO , HungryToEating
472472
@@ -488,7 +488,7 @@ LEMMA EatRelease ==
488488< 1 > 3 . Inv /\ HeldEat ( f , q ) => ENABLED << Act ( q ) >>_ vars
489489 BY EatingEnabled DEF HeldEat
490490< 1 > 4 . Spec => SF_ vars ( Act ( q ) )
491- BY SpecFair
491+ BY SpecFair , Isa
492492< 1 > . QED
493493 BY < 1 > 1 , < 1 > 2 , < 1 > 3 , < 1 > 4 , InvSpec , SpecNext , PTL DEF EatingFrees
494494
@@ -595,7 +595,7 @@ THEOREM AllFree == \A f \in P : Spec => FreeIO(f)
595595 BY < 2 > 1
596596< 1 > . HIDE DEF Q
597597< 1 > 3 . \A m \in Nat : Q ( m )
598- BY < 1 > 1 , < 1 > 2 , NatInduction
598+ BY < 1 > 1 , < 1 > 2 , NatInduction , Isa
599599< 1 > 4 . Q ( 3 )
600600 BY < 1 > 3
601601< 1 > . QED
@@ -616,7 +616,7 @@ LEMMA EatingIsEating == \A p \in P : Eating(p) => IsEating(p)
616616< 1 > 3 . Cardinality ( { LowFork ( p ) } \cup { HighFork ( p ) } ) = 2
617617 BY < 1 > 1 , < 1 > 2 , FS_AddElement
618618< 1 > . QED
619- BY < 1 > 3 DEF Eating , IsEating
619+ BY < 1 > 3 , Zenon DEF Eating , IsEating
620620
621621THEOREM StarvationFreedom
622622< 1 > . SUFFICES ASSUME NEW p \in P PROVE Spec => [] <> IsEating ( p )
@@ -666,7 +666,7 @@ BY StarvationFreedom, StarvationImpliesNoLivelock
666666LEMMA ActEnabledNext ==
667667 ASSUME NEW q \in P
668668 PROVE ( ENABLED << Act ( q ) >>_ vars ) => ENABLED Next
669- BY ExpandENABLED DEF Act , Next , TakeLeft , TakeRight , Release , vars
669+ BY ExpandENABLED , Zenon DEF Act , Next , TakeLeft , TakeRight , Release , vars
670670
671671LEMMA EvenFree ==
672672 ASSUME Inv , \A q \in P : ~ Eating ( q ) , NEW f \in P , Rank ( f ) = 2
0 commit comments