Step * of Lemma bag-drop-commutes

[T:Type]. ∀[eq:EqDecider(T)]. ∀[bs:bag(T)]. ∀[x,y:T].
  (bag-drop(eq;bag-drop(eq;bs;x);y) bag-drop(eq;bag-drop(eq;bs;y);x) ∈ bag(T))
BY
TACTIC:(Auto
          THEN (Assert ∀x,y:T.  Dec(x y ∈ T) BY
                      Auto)
          THEN (TACTIC: Decide ⌜y ∈ T⌝⋅⋅ THENA Auto)
          THEN Try ((HypSubst (-1) THEN Auto))
          THEN Unfold `bag-drop` 0
          THEN (InstLemma `bag-remove1-property` [⌜T⌝;⌜eq⌝]⋅ THENA Auto)
          THEN (InstHyp [⌜x⌝;⌜bs⌝8⋅ THENA Auto)
          THEN -1
          THEN ExRepD
          THEN ((HypSubst (-1) THENA (D (-1) THEN Reduce THEN Auto))
                THEN Reduce 0
                THEN ((InstHyp [⌜y⌝;⌜bs⌝8⋅ THENA Auto)
                      THEN -1
                      THEN ExRepD
                      THEN ((HypSubst (-1) THENA (D (-1) THEN Reduce THEN Auto)) THEN Reduce 0)⋅)⋅)⋅}

1
1. Type
2. eq EqDecider(T)
3. bs bag(T)
4. T
5. T
6. ∀x,y:T.  Dec(x y ∈ T)
7. ¬(x y ∈ T)
8. ∀x:T. ∀bs:bag(T).
     ((∃as:bag(T). ((bs ({x} as) ∈ bag(T)) ∧ (bag-remove1(eq;bs;x) (inl as) ∈ (bag(T)?))))
     ∨ ((¬x ↓∈ bs) ∧ (bag-remove1(eq;bs;x) (inr ⋅ ) ∈ (bag(T)?))))
9. as bag(T)
10. bs ({x} as) ∈ bag(T)
11. bag-remove1(eq;bs;x) (inl as) ∈ (bag(T)?)
12. a1 bag(T)
13. bs ({y} a1) ∈ bag(T)
14. bag-remove1(eq;bs;y) (inl a1) ∈ (bag(T)?)
⊢ case bag-remove1(eq;as;y) of inl(as) => as inr(_) => as
case bag-remove1(eq;a1;x) of inl(as) => as inr(_) => a1
∈ bag(T)

2
1. Type
2. eq EqDecider(T)
3. bs bag(T)
4. T
5. T
6. ∀x,y:T.  Dec(x y ∈ T)
7. ¬(x y ∈ T)
8. ∀x:T. ∀bs:bag(T).
     ((∃as:bag(T). ((bs ({x} as) ∈ bag(T)) ∧ (bag-remove1(eq;bs;x) (inl as) ∈ (bag(T)?))))
     ∨ ((¬x ↓∈ bs) ∧ (bag-remove1(eq;bs;x) (inr ⋅ ) ∈ (bag(T)?))))
9. as bag(T)
10. bs ({x} as) ∈ bag(T)
11. bag-remove1(eq;bs;x) (inl as) ∈ (bag(T)?)
12. ¬y ↓∈ bs
13. bag-remove1(eq;bs;y) (inr ⋅ ) ∈ (bag(T)?)
⊢ case bag-remove1(eq;as;y) of inl(as) => as inr(_) => as
case bag-remove1(eq;bs;x) of inl(as) => as inr(_) => bs
∈ bag(T)

3
1. Type
2. eq EqDecider(T)
3. bs bag(T)
4. T
5. T
6. ∀x,y:T.  Dec(x y ∈ T)
7. ¬(x y ∈ T)
8. ∀x:T. ∀bs:bag(T).
     ((∃as:bag(T). ((bs ({x} as) ∈ bag(T)) ∧ (bag-remove1(eq;bs;x) (inl as) ∈ (bag(T)?))))
     ∨ ((¬x ↓∈ bs) ∧ (bag-remove1(eq;bs;x) (inr ⋅ ) ∈ (bag(T)?))))
9. ¬x ↓∈ bs
10. bag-remove1(eq;bs;x) (inr ⋅ ) ∈ (bag(T)?)
11. as bag(T)
12. bs ({y} as) ∈ bag(T)
13. bag-remove1(eq;bs;y) (inl as) ∈ (bag(T)?)
⊢ as case bag-remove1(eq;as;x) of inl(as) => as inr(_) => as ∈ bag(T)

4
1. Type
2. eq EqDecider(T)
3. bs bag(T)
4. T
5. T
6. ∀x,y:T.  Dec(x y ∈ T)
7. ¬(x y ∈ T)
8. ∀x:T. ∀bs:bag(T).
     ((∃as:bag(T). ((bs ({x} as) ∈ bag(T)) ∧ (bag-remove1(eq;bs;x) (inl as) ∈ (bag(T)?))))
     ∨ ((¬x ↓∈ bs) ∧ (bag-remove1(eq;bs;x) (inr ⋅ ) ∈ (bag(T)?))))
9. ¬x ↓∈ bs
10. bag-remove1(eq;bs;x) (inr ⋅ ) ∈ (bag(T)?)
11. ¬y ↓∈ bs
12. bag-remove1(eq;bs;y) (inr ⋅ ) ∈ (bag(T)?)
⊢ bs case bag-remove1(eq;bs;x) of inl(as) => as inr(_) => bs ∈ bag(T)


Latex:


Latex:
\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[bs:bag(T)].  \mforall{}[x,y:T].
    (bag-drop(eq;bag-drop(eq;bs;x);y)  =  bag-drop(eq;bag-drop(eq;bs;y);x))


By


Latex:
TACTIC:(Auto
                THEN  (Assert  \mforall{}x,y:T.    Dec(x  =  y)  BY
                                        Auto)
                THEN  (TACTIC:  Decide  \mkleeneopen{}x  =  y\mkleeneclose{}\mcdot{}\mcdot{}  THENA  Auto)
                THEN  Try  ((HypSubst  (-1)  0  THEN  Auto))
                THEN  Unfold  `bag-drop`  0
                THEN  (InstLemma  `bag-remove1-property`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}eq\mkleeneclose{}]\mcdot{}  THENA  Auto)
                THEN  (InstHyp  [\mkleeneopen{}x\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{}]  8\mcdot{}  THENA  Auto)
                THEN  D  -1
                THEN  ExRepD
                THEN  ((HypSubst  (-1)  0  THENA  (D  (-1)  THEN  Reduce  0  THEN  Auto))
                            THEN  Reduce  0
                            THEN  ((InstHyp  [\mkleeneopen{}y\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{}]  8\mcdot{}  THENA  Auto)
                                        THEN  D  -1
                                        THEN  ExRepD
                                        THEN  ((HypSubst  (-1)  0  THENA  (D  (-1)  THEN  Reduce  0  THEN  Auto))  THEN  Reduce  0)\mcdot{})
                            \mcdot{})\mcdot{})




Home Index