This is a listing of all goals defined over the current specification. Axioms are yellow, proof obligations purple and theorems green. Click on individual names to get more information on the proof.
| Name: | Sequent: | Type: |
|---|---|---|
| CInitto-Idle | ⊦ CInitto(n, act, cs) → (¬ Idle(n, cs) ↔ false) | A User Theorem |
| CInitto-Idle-less | ⊦ CInitto(n0, act, cs) ∧ n1 < n0 → (¬ Idle(n1 + 1, cs) ↔ false) | A User Theorem |
| CInittosucc-Cinittp | ⊦ CInitto(n0 + 1, act, cs) → (¬ CInitto(n0, act, cs) ↔ false) | A User Theorem |
| COP-sat-rely-guar | CInv(n, Act, CS), Act(m), m ≤ n, Idle(m, CS) ⊦ [: Act, Inp, CS, Outp | CRely(m, Act', CS', Act'', CS'') , CGuar(m, Act, CS, Act', CS') , (CInv(n, Act, CS) ∧ Act(m)) , COP(m, Inp; CS, Outp) ] (CInv(n, Act, CS) ∧ Idle(m, CS) ∧ Act(m)) | A User Theorem |
| CRely-refl | ⊦ CInv(n, act, cs) → (¬ CRely(m, act, cs, act, cs) ↔ false) | A User Theorem |
| CRelytosucc-CRely | ⊦ CRelyto(m + 1, act, cs, act0, cs0) → (¬ CRely(m + 1, act, cs, act0, cs0) ↔ false) | A User Theorem |
| CRelytosucc-CRelyto | ⊦ CRelyto(m + 1, act, cs, act0, cs0) → (¬ CRelyto(m, act, cs, act0, cs0) ↔ false) | A User Theorem |
| CSEQ-sat-rely-guar | CInv(n, Act, CS), Idle(m, CS), m ≤ n ⊦ [: Act, Inp, CS, Outp | CRely(m, Act', CS', Act'', CS'') , CGuar(m, Act, CS, Act', CS') , CInv(n, Act, CS) , CSEQ(m; Act, Inp, CS, Outp) ] CInv(n, Act, CS) | A User Theorem |
| CSPAWN-sat-rely-guar | Init(CS), ∀ n. Act(n) ↔ false ⊦ [: Act, Inp, CS, Outp | CRelyto(n, Act', CS', Act'', CS'') , CGuarto(n, Act, CS, Act', CS') , CInv(n, Act, CS) , CSPAWN(n; Act, Inp, CS, Outp) ] CInv(n, Act, CS) | A User Theorem |
| CSPAWN-sat-rely-guar-ind | CInitto(m, Act, CS), CInv(n, Act, CS), m ≤ n ⊦ [: Act, Inp, CS, Outp | CRelyto(m, Act', CS', Act'', CS'') , CGuarto(m, Act, CS, Act', CS') , CInv(n, Act, CS) , CSPAWN(m; Act, Inp, CS, Outp) ] CInv(n, Act, CS) | A User Theorem |
| RG-restr-ok | ⊦ m < n → RG-restr (n, λ n, act, cs, act0, cs0. CRely(m + 1, act, cs, act0, cs0) ∧ (CInv(n, act, cs) → CInv(n, act0, cs0)), λ n, act, cs, act0, cs0. CGuar(m + 1, act, cs, act0, cs0) ∧ (CInv(n, act, cs) → CInv(n, act0, cs0)), λ n, act, cs. CInit(m + 1, act, cs) ∧ CInv(n, act, cs), λ n, act, cs, act0, cs0. CInv(n, act0, cs0), CInv, λ n, act, cs, act0, cs0. CRelyto(m, act, cs, act0, cs0) ∧ (CInv(n, act, cs) → CInv(n, act0, cs0)), λ n, act, cs, act0, cs0. CGuarto(m, act, cs, act0, cs0) ∧ (CInv(n, act, cs) → CInv(n, act0, cs0)), λ n, act, cs. CInitto(m, act, cs) ∧ CInv(n, act, cs), λ n, act, cs, act0, cs0. CInv(n, act0, cs0)) | A User Theorem |
| fair-always-left-rely | n < n0, CInv(n0, Act, CS), □ (CRelyto(n + 1, Act', CS', Act'', CS'') ∧ CInv(n0, Act', CS') ∧ CInv(n0, Act'', CS'')), [:Act, CS | [PL ◇ ¬ CRely(n + 1, Act', CS', Act'', CS'') ∧ (CRely(n + 1, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuar(n + 1, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ∥ [PL (CRelyto(n, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuarto(n, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ] ⊦ | A User Theorem |
| fair-always-left-relyinv | n < n0, CInv(n0, Act, CS), □ (CRelyto(n + 1, Act', CS', Act'', CS'') ∧ CInv(n0, Act', CS') ∧ CInv(n0, Act'', CS'')), [:Act, CS | [PL ◇ (¬ CRely(n + 1, Act', CS', Act'', CS'') ∨ ¬(CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) ∧ (CRely(n + 1, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuar(n + 1, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ∥ [PL (CRelyto(n, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuarto(n, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ] ⊦ | A User Theorem |
| fair-always-right-rely | n < n0, CInv(n0, Act, CS), □ (CRelyto(n + 1, Act', CS', Act'', CS'') ∧ CInv(n0, Act', CS') ∧ CInv(n0, Act'', CS'')), [:Act, CS | [PL (CRely(n + 1, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuar(n + 1, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ∥ [PL ◇ ¬ CRelyto(n, Act', CS', Act'', CS'') ∧ (CRelyto(n, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuarto(n, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ] ⊦ | A User Theorem |
| fair-always-right-relyinv | n < n0, CInv(n0, Act, CS), □ (CRelyto(n + 1, Act', CS', Act'', CS'') ∧ CInv(n0, Act', CS') ∧ CInv(n0, Act'', CS'')), [:Act, CS | [PL (CRely(n + 1, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuar(n + 1, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ∥ [PL ◇ (¬ CRelyto(n, Act', CS', Act'', CS'') ∨ ¬(CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) ∧ (CRelyto(n, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuarto(n, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ] ⊦ | A User Theorem |
| fair-never-violates-left-rely | n < n0, CInv(n0, Act, CS), □ (CRelyto(n + 1, Act', CS', Act'', CS'') ∧ CInv(n0, Act', CS') ∧ CInv(n0, Act'', CS'')), [:Act, CS | [PL Act = act ∧ CS = cs] ∥ [PL (CRelyto(n, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuarto(n, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ], ¬ CRely(n + 1, act0, cs0, act, cs) ∨ ¬ CInv(n0, act, cs), CRely(n + 1, act0, cs0, Act, CS), CInv(n0, act0, cs0) ⊦ | A User Theorem |
| fair-never-violates-right-rely | n < n0, CInv(n0, Act, CS), □ (CRelyto(n + 1, Act', CS', Act'', CS'') ∧ CInv(n0, Act', CS') ∧ CInv(n0, Act'', CS'')), [:Act, CS | [PL (CRely(n + 1, Act', CS', Act'', CS'') ∧ (CInv(n0, Act', CS') → CInv(n0, Act'', CS''))) -+-> (last ⊃ CInv(n0, Act, CS);CGuar(n + 1, Act, CS, Act', CS') ∧ (CInv(n0, Act, CS) → CInv(n0, Act', CS'))) ] ∥ [PL Act = act ∧ CS = cs] ], ¬ CRelyto(n, act0, cs0, act, cs) ∨ ¬ CInv(n0, act, cs), CRelyto(n, act0, cs0, Act, CS), CInv(n0, act0, cs0) ⊦ | A User Theorem |
| g-r | ⊦ CGuar(n, act, cs, act0, cs0) ∧ m ≠ n ∧ CInv(n0, act, cs) ∧ CInv(n0, act0, cs0) → (¬ CRely(m, act, cs, act0, cs0) ↔ false) | A User Theorem |