Step
*
1
1
of Lemma
free-dlwc-basis
1. T : Type
2. eq : EqDecider(T)
3. Cs : T ⟶ fset(fset(T))
4. x : fset(fset(T))
5. ↑fset-antichain(eq;x)
6. fset-all(x;a.fset-contains-none(eq;a;x.Cs[x]))
7. x ∈ Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))
8. deq-fset(deq-fset(eq)) ∈ EqDecider(Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x])))
⊢ x = \/(λs.{s}"(x)) ∈ Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))
BY
{ ((Assert ∀s:fset(T). (s ∈ x 
⇒ ({s} ∈ Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x])))) BY
          ((RWO "free-dlwc-point" 0 THEN Auto)
           THEN MemTypeCD
           THEN Auto
           THEN (InstLemma `fset-all-iff` [⌜fset(T)⌝;⌜deq-fset(eq)⌝]⋅ THENA Auto)
           THEN (RWO "-1" 6 THENA Auto)
           THEN (RWO "-1" 0 THENA Auto)
           THEN ParallelOp 6
           THEN ParallelLast
           THEN RWO "member-fset-singleton" (-1)
           THEN Auto))
   THEN (Assert λs.{s}"(x) ∈ fset(Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))) BY
               (GenConcl ⌜x = y ∈ fset({s:fset(T)| s ∈ x} )⌝⋅ THEN Try (BLemma `fset-subtype2`) THEN Auto))
   ) }
1
1. T : Type
2. eq : EqDecider(T)
3. Cs : T ⟶ fset(fset(T))
4. x : fset(fset(T))
5. ↑fset-antichain(eq;x)
6. fset-all(x;a.fset-contains-none(eq;a;x.Cs[x]))
7. x ∈ Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))
8. deq-fset(deq-fset(eq)) ∈ EqDecider(Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x])))
9. ∀s:fset(T). (s ∈ x 
⇒ ({s} ∈ Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))))
10. λs.{s}"(x) ∈ fset(Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x])))
⊢ x = \/(λs.{s}"(x)) ∈ Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))
Latex:
Latex:
1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  Cs  :  T  {}\mrightarrow{}  fset(fset(T))
4.  x  :  fset(fset(T))
5.  \muparrow{}fset-antichain(eq;x)
6.  fset-all(x;a.fset-contains-none(eq;a;x.Cs[x]))
7.  x  \mmember{}  Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))
8.  deq-fset(deq-fset(eq))  \mmember{}  EqDecider(Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x])))
\mvdash{}  x  =  \mbackslash{}/(\mlambda{}s.\{s\}"(x))
By
Latex:
((Assert  \mforall{}s:fset(T).  (s  \mmember{}  x  {}\mRightarrow{}  (\{s\}  \mmember{}  Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))))  BY
                ((RWO  "free-dlwc-point"  0  THEN  Auto)
                  THEN  MemTypeCD
                  THEN  Auto
                  THEN  (InstLemma  `fset-all-iff`  [\mkleeneopen{}fset(T)\mkleeneclose{};\mkleeneopen{}deq-fset(eq)\mkleeneclose{}]\mcdot{}  THENA  Auto)
                  THEN  (RWO  "-1"  6  THENA  Auto)
                  THEN  (RWO  "-1"  0  THENA  Auto)
                  THEN  ParallelOp  6
                  THEN  ParallelLast
                  THEN  RWO  "member-fset-singleton"  (-1)
                  THEN  Auto))
  THEN  (Assert  \mlambda{}s.\{s\}"(x)  \mmember{}  fset(Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x])))  BY
                          (GenConcl  \mkleeneopen{}x  =  y\mkleeneclose{}\mcdot{}  THEN  Try  (BLemma  `fset-subtype2`)  THEN  Auto))
  )
Home
Index