Step
*
1
1
3
of Lemma
run-event-cases
1. [M] : Type ─→ Type
2. S0 : System(P.M[P])@i
3. r : pRunType(P.M[P])@i
4. n : ℕ@i
5. x : Id@i
6. m : ℕ@i
7. n ≤ m
8. ↑is-run-event(r;m;x)
9. ↑is-run-event(r;n;x)
10. L1 : {tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List@i
11. ¬(L1 = [] ∈ ({tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List))
12. mapfilter(λt.<t, x>;λt.is-run-event(r;t;x);[0, n))
= L1
∈ ({tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List)@i
13. L2 : {tx:{n..m-} × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List@i
14. mapfilter(λt.<t, x>;λt.is-run-event(r;t;x);[n, m))
= L2
∈ ({tx:{n..m-} × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List)@i
15. ↑is-run-event(r;m;x)
⊢ (((inl last(L1 @ L2)) = (inl last(L1)) ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} ?))
∧ ((L2 @ [<m, x>]) = [<m, x>] ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} List)))
∨ (∃e:{tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))}
(fst(e) < m
∧ (n ≤ (fst(e)))
∧ ((x = (snd(e)) ∈ Id) ∧ ((inl last(L1 @ L2)) = (inl e) ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} ?)))
∧ ((L2 @ [<m, x>])
= (map(λt.<t, x>;filter(λt.is-run-event(r;t;x);[n, (fst(e)) + 1))) @ [<m, x>])
∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} List))))
BY
{ (Decide ⌈↑null(L2)⌉⋅ THENA Auto) }
1
1. [M] : Type ─→ Type
2. S0 : System(P.M[P])@i
3. r : pRunType(P.M[P])@i
4. n : ℕ@i
5. x : Id@i
6. m : ℕ@i
7. n ≤ m
8. ↑is-run-event(r;m;x)
9. ↑is-run-event(r;n;x)
10. L1 : {tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List@i
11. ¬(L1 = [] ∈ ({tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List))
12. mapfilter(λt.<t, x>;λt.is-run-event(r;t;x);[0, n))
= L1
∈ ({tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List)@i
13. L2 : {tx:{n..m-} × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List@i
14. mapfilter(λt.<t, x>;λt.is-run-event(r;t;x);[n, m))
= L2
∈ ({tx:{n..m-} × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List)@i
15. ↑is-run-event(r;m;x)
16. ↑null(L2)
⊢ (((inl last(L1 @ L2)) = (inl last(L1)) ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} ?))
∧ ((L2 @ [<m, x>]) = [<m, x>] ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} List)))
∨ (∃e:{tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))}
(fst(e) < m
∧ (n ≤ (fst(e)))
∧ ((x = (snd(e)) ∈ Id) ∧ ((inl last(L1 @ L2)) = (inl e) ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} ?)))
∧ ((L2 @ [<m, x>])
= (map(λt.<t, x>;filter(λt.is-run-event(r;t;x);[n, (fst(e)) + 1))) @ [<m, x>])
∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} List))))
2
1. [M] : Type ─→ Type
2. S0 : System(P.M[P])@i
3. r : pRunType(P.M[P])@i
4. n : ℕ@i
5. x : Id@i
6. m : ℕ@i
7. n ≤ m
8. ↑is-run-event(r;m;x)
9. ↑is-run-event(r;n;x)
10. L1 : {tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List@i
11. ¬(L1 = [] ∈ ({tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List))
12. mapfilter(λt.<t, x>;λt.is-run-event(r;t;x);[0, n))
= L1
∈ ({tx:ℕn × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List)@i
13. L2 : {tx:{n..m-} × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List@i
14. mapfilter(λt.<t, x>;λt.is-run-event(r;t;x);[n, m))
= L2
∈ ({tx:{n..m-} × {i:Id| i = x ∈ Id} | ↑is-run-event(r;fst(tx);snd(tx))} List)@i
15. ↑is-run-event(r;m;x)
16. ¬↑null(L2)
⊢ (((inl last(L1 @ L2)) = (inl last(L1)) ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} ?))
∧ ((L2 @ [<m, x>]) = [<m, x>] ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} List)))
∨ (∃e:{tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))}
(fst(e) < m
∧ (n ≤ (fst(e)))
∧ ((x = (snd(e)) ∈ Id) ∧ ((inl last(L1 @ L2)) = (inl e) ∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} ?)))
∧ ((L2 @ [<m, x>])
= (map(λt.<t, x>;filter(λt.is-run-event(r;t;x);[n, (fst(e)) + 1))) @ [<m, x>])
∈ ({tx:ℕ × Id| ↑is-run-event(r;fst(tx);snd(tx))} List))))
Latex:
Latex:
1. [M] : Type {}\mrightarrow{} Type
2. S0 : System(P.M[P])@i
3. r : pRunType(P.M[P])@i
4. n : \mBbbN{}@i
5. x : Id@i
6. m : \mBbbN{}@i
7. n \mleq{} m
8. \muparrow{}is-run-event(r;m;x)
9. \muparrow{}is-run-event(r;n;x)
10. L1 : \{tx:\mBbbN{}n \mtimes{} \{i:Id| i = x\} | \muparrow{}is-run-event(r;fst(tx);snd(tx))\} List@i
11. \mneg{}(L1 = [])
12. mapfilter(\mlambda{}t.<t, x>\mlambda{}t.is-run-event(r;t;x);[0, n)) = L1@i
13. L2 : \{tx:\{n..m\msupminus{}\} \mtimes{} \{i:Id| i = x\} | \muparrow{}is-run-event(r;fst(tx);snd(tx))\} List@i
14. mapfilter(\mlambda{}t.<t, x>\mlambda{}t.is-run-event(r;t;x);[n, m)) = L2@i
15. \muparrow{}is-run-event(r;m;x)
\mvdash{} (((inl last(L1 @ L2)) = (inl last(L1))) \mwedge{} ((L2 @ [<m, x>]) = [<m, x>]))
\mvee{} (\mexists{}e:\{tx:\mBbbN{} \mtimes{} Id| \muparrow{}is-run-event(r;fst(tx);snd(tx))\}
(fst(e) < m
\mwedge{} (n \mleq{} (fst(e)))
\mwedge{} ((x = (snd(e))) \mwedge{} ((inl last(L1 @ L2)) = (inl e)))
\mwedge{} ((L2 @ [<m, x>])
= (map(\mlambda{}t.<t, x>filter(\mlambda{}t.is-run-event(r;t;x);[n, (fst(e)) + 1))) @ [<m, x>]))))
By
Latex:
(Decide \mkleeneopen{}\muparrow{}null(L2)\mkleeneclose{}\mcdot{} THENA Auto)
Home
Index