Step
*
3
1
1
of Lemma
finite-union
1. S : Type
2. T : Type
3. n : ℕ
4. L : (S + T) List
5. no_repeats(S + T;L)
6. ||L|| = n ∈ ℤ
7. ∀x:S + T. (x ∈ L)
8. mapfilter(λx.outr(x);λx.isr(x);L) ∈ T List
⊢ no_repeats(T;mapfilter(λx.outr(x);λx.isr(x);L))
BY
{ (Unfold `mapfilter` 0
   THEN InstLemma `no_repeats_map` [⌜{x:S + T| ↑isr(x)} ⌝;⌜filter(λx.isr(x);L)⌝;⌜T⌝;⌜λx.outr(x)⌝]⋅
   THEN Auto) }
1
.....antecedent..... 
1. S : Type
2. T : Type
3. n : ℕ
4. L : (S + T) List
5. no_repeats(S + T;L)
6. ||L|| = n ∈ ℤ
7. ∀x:S + T. (x ∈ L)
8. mapfilter(λx.outr(x);λx.isr(x);L) ∈ T List
⊢ no_repeats({x:S + T| ↑isr(x)} filter(λx.isr(x);L))
2
.....antecedent..... 
1. S : Type
2. T : Type
3. n : ℕ
4. L : (S + T) List
5. no_repeats(S + T;L)
6. ||L|| = n ∈ ℤ
7. ∀x:S + T. (x ∈ L)
8. mapfilter(λx.outr(x);λx.isr(x);L) ∈ T List
⊢ Inj({x:{x:S + T| ↑isr(x)} | (x ∈ filter(λx.isr(x);L))} T;λx.outr(x))
Latex:
Latex:
1.  S  :  Type
2.  T  :  Type
3.  n  :  \mBbbN{}
4.  L  :  (S  +  T)  List
5.  no\_repeats(S  +  T;L)
6.  ||L||  =  n
7.  \mforall{}x:S  +  T.  (x  \mmember{}  L)
8.  mapfilter(\mlambda{}x.outr(x);\mlambda{}x.isr(x);L)  \mmember{}  T  List
\mvdash{}  no\_repeats(T;mapfilter(\mlambda{}x.outr(x);\mlambda{}x.isr(x);L))
By
Latex:
(Unfold  `mapfilter`  0
  THEN  InstLemma  `no\_repeats\_map`  [\mkleeneopen{}\{x:S  +  T|  \muparrow{}isr(x)\}  \mkleeneclose{};\mkleeneopen{}filter(\mlambda{}x.isr(x);L)\mkleeneclose{};\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}\mlambda{}x.outr(x)\mkleeneclose{}]\mcdot{}
  THEN  Auto)
Home
Index