Step
*
1
2
of Lemma
bag-union_wf
1. T : Type
2. as : bag(T) List
3. bs : bag(T) List
4. permutation(bag(T);as;bs)
5. ∀L:bag(T) List. (concat(L) ∈ bag(T))
⊢ concat(as) = concat(bs) ∈ bag(T)
BY
{ (InstLemma `permutation-invariant` [⌜bag(T)⌝;⌜λ2b.concat(b) = concat(as) ∈ bag(T)⌝]⋅ THEN Try (Complete (Auto))) }
1
.....antecedent..... 
1. T : Type
2. as : bag(T) List
3. bs : bag(T) List
4. permutation(bag(T);as;bs)
5. ∀L:bag(T) List. (concat(L) ∈ bag(T))
⊢ ∀as@0:bag(T) List. ∀a:bag(T).
    ((concat([a / as@0]) = concat(as) ∈ bag(T)) 
⇒ (concat(as@0 @ [a]) = concat(as) ∈ bag(T)))
2
.....antecedent..... 
1. T : Type
2. as : bag(T) List
3. bs : bag(T) List
4. permutation(bag(T);as;bs)
5. ∀L:bag(T) List. (concat(L) ∈ bag(T))
⊢ ∀as@0:bag(T) List. ∀a1,a2:bag(T).
    ((concat([a1; [a2 / as@0]]) = concat(as) ∈ bag(T)) 
⇒ (concat([a2; [a1 / as@0]]) = concat(as) ∈ bag(T)))
3
1. T : Type
2. as : bag(T) List
3. bs : bag(T) List
4. permutation(bag(T);as;bs)
5. ∀L:bag(T) List. (concat(L) ∈ bag(T))
6. ∀as@0,bs:bag(T) List.
     (permutation(bag(T);as@0;bs) 
⇒ (concat(as@0) = concat(as) ∈ bag(T) 
⇐⇒ concat(bs) = concat(as) ∈ bag(T)))
⊢ concat(as) = concat(bs) ∈ bag(T)
Latex:
Latex:
1.  T  :  Type
2.  as  :  bag(T)  List
3.  bs  :  bag(T)  List
4.  permutation(bag(T);as;bs)
5.  \mforall{}L:bag(T)  List.  (concat(L)  \mmember{}  bag(T))
\mvdash{}  concat(as)  =  concat(bs)
By
Latex:
(InstLemma  `permutation-invariant`  [\mkleeneopen{}bag(T)\mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}b.concat(b)  =  concat(as)\mkleeneclose{}]\mcdot{}
  THEN  Try  (Complete  (Auto))
  )
Home
Index