Step
*
of Lemma
append-tuple-one-one
∀[L1,L2:Type List].
∀[x1,x2:tuple-type(L1)]. ∀[y1,y2:tuple-type(L2)].
{(x1 = x2 ∈ tuple-type(L1)) ∧ (y1 = y2 ∈ tuple-type(L2))}
supposing append-tuple(||L1||;||L2||;x1;y1) = append-tuple(||L1||;||L2||;x2;y2) ∈ tuple-type(L1 @ L2)
supposing 0 < ||L2||
BY
{ (Auto
THEN (ApFunToHypEquands `Z' ⌜split-tuple(Z;||L1||)⌝
⌜tuple-type(firstn(||L1||;L1 @ L2)) × tuple-type(nth_tl(||L1||;L1 @ L2))⌝ (-1)⋅
THENA (Auto THEN Auto')
)
THEN RWO "split-tuple-append-tuple" (-1)
THEN Auto) }
1
1. L1 : Type List
2. L2 : Type List
3. 0 < ||L2||
4. x1 : tuple-type(L1)
5. x2 : tuple-type(L1)
6. y1 : tuple-type(L2)
7. y2 : tuple-type(L2)
8. append-tuple(||L1||;||L2||;x1;y1) = append-tuple(||L1||;||L2||;x2;y2) ∈ tuple-type(L1 @ L2)
9. <x1, y1> = <x2, y2> ∈ (tuple-type(firstn(||L1||;L1 @ L2)) × tuple-type(nth_tl(||L1||;L1 @ L2)))
⊢ {(x1 = x2 ∈ tuple-type(L1)) ∧ (y1 = y2 ∈ tuple-type(L2))}
Latex:
Latex:
\mforall{}[L1,L2:Type List].
\mforall{}[x1,x2:tuple-type(L1)]. \mforall{}[y1,y2:tuple-type(L2)].
\{(x1 = x2) \mwedge{} (y1 = y2)\}
supposing append-tuple(||L1||;||L2||;x1;y1) = append-tuple(||L1||;||L2||;x2;y2)
supposing 0 < ||L2||
By
Latex:
(Auto
THEN (ApFunToHypEquands `Z' \mkleeneopen{}split-tuple(Z;||L1||)\mkleeneclose{}
\mkleeneopen{}tuple-type(firstn(||L1||;L1 @ L2)) \mtimes{} tuple-type(nth\_tl(||L1||;L1
@ L2))\mkleeneclose{} (-1)
\mcdot{}
THENA (Auto THEN Auto')
)
THEN RWO "split-tuple-append-tuple" (-1)
THEN Auto)
Home
Index