Step
*
2
2
2
1
of Lemma
fdl-hom_wf
1. X : Type
2. L : BoundedDistributiveLattice
3. f : X ⟶ Point(L)
4. fdl-hom(L;f) ∈ free-dl-type(X) ⟶ Point(L)
5. ((fdl-hom(L;f) 0) = 0 ∈ Point(L)) ∧ ((fdl-hom(L;f) 1) = 1 ∈ Point(L))
6. ∀as,bs:X List List. (fdl-hom(L;f) as ∨ fdl-hom(L;f) bs = (fdl-hom(L;f) as ∨ bs) ∈ Point(L))
⊢ fdl-hom(L;f) ∈ Hom(free-dl(X);L)
BY
{ ((Assert ⌜Point(free-dl(X)) ~ free-dl-type(X)⌝⋅ THENA (RW (SubC (TagC (mk_tag_term 100))) 0 THEN Auto))
THEN RepeatFor 2 ((MemTypeCD THEN Auto))
THEN Try (Thin (-1))
THEN RWO "-3" (-2)
THEN RWO "-3" (-1)
THEN (InstLemma `dlattice-eq-equiv` [⌜X⌝]⋅ THENA Auto)
THEN (OnVar `a' newQuotientElim THENA Auto)
THEN (OnVar `b' newQuotientElim THENA Auto)) }
1
1. X : Type
2. L : BoundedDistributiveLattice
3. f : X ⟶ Point(L)
4. fdl-hom(L;f) ∈ free-dl-type(X) ⟶ Point(L)
5. (fdl-hom(L;f) 0) = 0 ∈ Point(L)
6. (fdl-hom(L;f) 1) = 1 ∈ Point(L)
7. ∀as,bs:X List List. (fdl-hom(L;f) as ∨ fdl-hom(L;f) bs = (fdl-hom(L;f) as ∨ bs) ∈ Point(L))
8. Point(free-dl(X)) ~ free-dl-type(X)
9. istype(X List List)
10. ∀as,bs:X List List. istype(dlattice-eq(X;as;bs))
11. ∀as:X List List. dlattice-eq(X;as;as)
12. istype(X List List)
13. ∀a1,b1:X List List. istype(dlattice-eq(X;a1;b1))
14. ∀a1:X List List. dlattice-eq(X;a1;a1)
15. EquivRel(X List List;as,bs.dlattice-eq(X;as;bs))
16. as : X List List
17. bs : X List List
18. dlattice-eq(X;as;bs)
19. Point(L) = Point(L) ∈ Type
20. a1 : X List List
21. b1 : X List List
22. dlattice-eq(X;a1;b1)
23. Point(L) = Point(L) ∈ Type
⊢ fdl-hom(L;f) as ∧ fdl-hom(L;f) a1 = (fdl-hom(L;f) bs ∧ b1) ∈ Point(L)
2
1. X : Type
2. L : BoundedDistributiveLattice
3. f : X ⟶ Point(L)
4. fdl-hom(L;f) ∈ free-dl-type(X) ⟶ Point(L)
5. (fdl-hom(L;f) 0) = 0 ∈ Point(L)
6. (fdl-hom(L;f) 1) = 1 ∈ Point(L)
7. ∀as,bs:X List List. (fdl-hom(L;f) as ∨ fdl-hom(L;f) bs = (fdl-hom(L;f) as ∨ bs) ∈ Point(L))
8. Point(free-dl(X)) ~ free-dl-type(X)
9. istype(X List List)
10. ∀as,bs:X List List. istype(dlattice-eq(X;as;bs))
11. ∀as:X List List. dlattice-eq(X;as;as)
12. istype(X List List)
13. ∀a1,b1:X List List. istype(dlattice-eq(X;a1;b1))
14. ∀a1:X List List. dlattice-eq(X;a1;a1)
15. EquivRel(X List List;as,bs.dlattice-eq(X;as;bs))
16. as : X List List
17. bs : X List List
18. dlattice-eq(X;as;bs)
19. Point(L) = Point(L) ∈ Type
20. a1 : X List List
21. b1 : X List List
22. dlattice-eq(X;a1;b1)
23. Point(L) = Point(L) ∈ Type
⊢ fdl-hom(L;f) as ∨ fdl-hom(L;f) a1 = (fdl-hom(L;f) bs ∨ b1) ∈ Point(L)
Latex:
Latex:
1. X : Type
2. L : BoundedDistributiveLattice
3. f : X {}\mrightarrow{} Point(L)
4. fdl-hom(L;f) \mmember{} free-dl-type(X) {}\mrightarrow{} Point(L)
5. ((fdl-hom(L;f) 0) = 0) \mwedge{} ((fdl-hom(L;f) 1) = 1)
6. \mforall{}as,bs:X List List. (fdl-hom(L;f) as \mvee{} fdl-hom(L;f) bs = (fdl-hom(L;f) as \mvee{} bs))
\mvdash{} fdl-hom(L;f) \mmember{} Hom(free-dl(X);L)
By
Latex:
((Assert \mkleeneopen{}Point(free-dl(X)) \msim{} free-dl-type(X)\mkleeneclose{}\mcdot{}
THENA (RW (SubC (TagC (mk\_tag\_term 100))) 0 THEN Auto)
)
THEN RepeatFor 2 ((MemTypeCD THEN Auto))
THEN Try (Thin (-1))
THEN RWO "-3" (-2)
THEN RWO "-3" (-1)
THEN (InstLemma `dlattice-eq-equiv` [\mkleeneopen{}X\mkleeneclose{}]\mcdot{} THENA Auto)
THEN (OnVar `a' newQuotientElim THENA Auto)
THEN (OnVar `b' newQuotientElim THENA Auto))
Home
Index