| boolvar ∨ n = N +1 ∧ N = N'' +1 until Boolvar, Ry(m)(s0, S) ∧ (GInv(s0) → GInv(S)) → (Ry(m)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Po(m)(S);Gr(m)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S'))), INDHYP-nat(n), GInv(s), ¬ false, boolvar1 → s = s0 ∧ (boolvar ↔ boolvar0) ∧ n = n0, (false ⊃ Po(m)(s);Gr(m)(s, s0) ∧ ¬ boolvar1 ∧ (GInv(s) → GInv(s0))) ⊦ (false ⊃ Po(m)(s) ∧ GInv(s);Gr(m)(s, s0) ∧ ¬ boolvar1 ∧ (GInv(s) → GInv(s0))) ∧ ( (Ry(m)(s0, S) ∧ (GInv(s0) → GInv(S))) ∧ ¬ boolvar → ((Ry(m)(S', S'') ∧ (GInv(S') → GInv(S''))) ∧ ¬ Boolvar) -+-> (last ⊃ Po(m)(S) ∧ GInv(S);Gr(m)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S')))) |
(Ry(m)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Po(m)(S);Gr(m)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S'))), N = N'' + 1 until Boolvar, INDHYP-nat(N + 1), GInv(S), Ry(m)(s0, S), GInv(s0), Gr(m)(s, s0), GInv(s) ⊦ (Ry(m)(S', S'') ∧ (GInv(S') → GInv(S'')) ∧ ¬ Boolvar) -+-> (last ⊃ Po(m)(S) ∧ GInv(S);Gr(m)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S')))
Used simplifier rules: succ: ⊦ m +1 = m + 1; from specification nat-basic2