Step
*
of Lemma
Memory-class-mem
∀[Info,B,A:Type].
∀R:A ─→ B ─→ B ─→ ℙ. ∀f:A ─→ B ─→ B. ∀init:Id ─→ bag(B). ∀X:EClass(A). ∀es:EO+(Info). ∀e1,e2:E. ∀v1,v2:B. ∀a:A.
((∀a:A. ∀s:B. ∀e:E. (e1 ≤loc e
⇒ (e <loc e2)
⇒ a ∈ X(e)
⇒ s ∈ Memory-class(f;init;X)(e)
⇒ R[a;s;f a s]))
⇒ (∀a1,a2:A. ∀s1,s2:B. ∀e,e':E.
(e1 ≤loc e
⇒ (e <loc e')
⇒ (e' <loc e2)
⇒ a1 ∈ X(e)
⇒ s1 ∈ Memory-class(f;init;X)(e)
⇒ a2 ∈ X(e')
⇒ s2 ∈ Memory-class(f;init;X)(e')
⇒ R[a1;s1;s2]
⇒ R[a1;s1;f a2 s2]))
⇒ single-valued-classrel(es;X;A)
⇒ single-valued-bag(init loc(e1);B)
⇒ (e1 <loc e2)
⇒ a ∈ X(e1)
⇒ v1 ∈ Memory-class(f;init;X)(e1)
⇒ v2 ∈ Memory-class(f;init;X)(e2)
⇒ R[a;v1;v2])
BY
{ ((UnivCD THENA Auto)
THEN (RWO "Memory-classrel-single-val" (-1) THENA Auto)
THEN (RWO "Memory-classrel-single-val" (-2) THENA Auto)
THEN All (RepUR ``prior-iterated-classrel``)
THEN SplitOrHyps
THEN RepD
THEN Try (Complete ((Assert ⌈False⌉⋅ THEN MaAuto)))) }
1
1. [Info] : Type
2. [B] : Type
3. [A] : Type
4. R : A ─→ B ─→ B ─→ ℙ@i'
5. f : A ─→ B ─→ B@i
6. init : Id ─→ bag(B)@i
7. X : EClass(A)@i'
8. es : EO+(Info)@i'
9. e1 : E@i
10. e2 : E@i
11. v1 : B@i
12. v2 : B@i
13. a : A@i
14. ∀a:A. ∀s:B. ∀e:E. (e1 ≤loc e
⇒ (e <loc e2)
⇒ a ∈ X(e)
⇒ s ∈ Memory-class(f;init;X)(e)
⇒ R[a;s;f a s])@i
15. ∀a1,a2:A. ∀s1,s2:B. ∀e,e':E.
(e1 ≤loc e
⇒ (e <loc e')
⇒ (e' <loc e2)
⇒ a1 ∈ X(e)
⇒ s1 ∈ Memory-class(f;init;X)(e)
⇒ a2 ∈ X(e')
⇒ s2 ∈ Memory-class(f;init;X)(e')
⇒ R[a1;s1;s2]
⇒ R[a1;s1;f a2 s2])@i
16. single-valued-classrel(es;X;A)@i
17. single-valued-bag(init loc(e1);B)@i
18. (e1 <loc e2)@i
19. a ∈ X(e1)@i
20. ↑first(e1)
21. v1 ↓∈ init loc(e1)
22. ¬↑first(e2)
23. iterated-classrel(es;B;A;f;init;X;pred(e2);v2)
⊢ R[a;v1;v2]
2
1. [Info] : Type
2. [B] : Type
3. [A] : Type
4. R : A ─→ B ─→ B ─→ ℙ@i'
5. f : A ─→ B ─→ B@i
6. init : Id ─→ bag(B)@i
7. X : EClass(A)@i'
8. es : EO+(Info)@i'
9. e1 : E@i
10. e2 : E@i
11. v1 : B@i
12. v2 : B@i
13. a : A@i
14. ∀a:A. ∀s:B. ∀e:E. (e1 ≤loc e
⇒ (e <loc e2)
⇒ a ∈ X(e)
⇒ s ∈ Memory-class(f;init;X)(e)
⇒ R[a;s;f a s])@i
15. ∀a1,a2:A. ∀s1,s2:B. ∀e,e':E.
(e1 ≤loc e
⇒ (e <loc e')
⇒ (e' <loc e2)
⇒ a1 ∈ X(e)
⇒ s1 ∈ Memory-class(f;init;X)(e)
⇒ a2 ∈ X(e')
⇒ s2 ∈ Memory-class(f;init;X)(e')
⇒ R[a1;s1;s2]
⇒ R[a1;s1;f a2 s2])@i
16. single-valued-classrel(es;X;A)@i
17. single-valued-bag(init loc(e1);B)@i
18. (e1 <loc e2)@i
19. a ∈ X(e1)@i
20. ¬↑first(e1)
21. iterated-classrel(es;B;A;f;init;X;pred(e1);v1)
22. ¬↑first(e2)
23. iterated-classrel(es;B;A;f;init;X;pred(e2);v2)
⊢ R[a;v1;v2]
Latex:
Latex:
\mforall{}[Info,B,A:Type].
\mforall{}R:A {}\mrightarrow{} B {}\mrightarrow{} B {}\mrightarrow{} \mBbbP{}. \mforall{}f:A {}\mrightarrow{} B {}\mrightarrow{} B. \mforall{}init:Id {}\mrightarrow{} bag(B). \mforall{}X:EClass(A). \mforall{}es:EO+(Info). \mforall{}e1,e2:E.
\mforall{}v1,v2:B. \mforall{}a:A.
((\mforall{}a:A. \mforall{}s:B. \mforall{}e:E.
(e1 \mleq{}loc e {}\mRightarrow{} (e <loc e2) {}\mRightarrow{} a \mmember{} X(e) {}\mRightarrow{} s \mmember{} Memory-class(f;init;X)(e) {}\mRightarrow{} R[a;s;f a s]))
{}\mRightarrow{} (\mforall{}a1,a2:A. \mforall{}s1,s2:B. \mforall{}e,e':E.
(e1 \mleq{}loc e
{}\mRightarrow{} (e <loc e')
{}\mRightarrow{} (e' <loc e2)
{}\mRightarrow{} a1 \mmember{} X(e)
{}\mRightarrow{} s1 \mmember{} Memory-class(f;init;X)(e)
{}\mRightarrow{} a2 \mmember{} X(e')
{}\mRightarrow{} s2 \mmember{} Memory-class(f;init;X)(e')
{}\mRightarrow{} R[a1;s1;s2]
{}\mRightarrow{} R[a1;s1;f a2 s2]))
{}\mRightarrow{} single-valued-classrel(es;X;A)
{}\mRightarrow{} single-valued-bag(init loc(e1);B)
{}\mRightarrow{} (e1 <loc e2)
{}\mRightarrow{} a \mmember{} X(e1)
{}\mRightarrow{} v1 \mmember{} Memory-class(f;init;X)(e1)
{}\mRightarrow{} v2 \mmember{} Memory-class(f;init;X)(e2)
{}\mRightarrow{} R[a;v1;v2])
By
Latex:
((UnivCD THENA Auto)
THEN (RWO "Memory-classrel-single-val" (-1) THENA Auto)
THEN (RWO "Memory-classrel-single-val" (-2) THENA Auto)
THEN All (RepUR ``prior-iterated-classrel``)
THEN SplitOrHyps
THEN RepD
THEN Try (Complete ((Assert \mkleeneopen{}False\mkleeneclose{}\mcdot{} THEN MaAuto))))
Home
Index