Theorem appendcan1 | index | src |

theorem appendcan1 (a b c: nat): $ a ++ b = a ++ c <-> b = c $;
StepHypRefExpression
1 bitr4
(a ++ b = a ++ c <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b) -> (b = c <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b) -> (a ++ b = a ++ c <-> b = c)
2 eqlele
a ++ b = a ++ c <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b
3 1, 2 ax_mp
(b = c <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b) -> (a ++ b = a ++ c <-> b = c)
4 bitr
(b = c <-> b <= c /\ c <= b) -> (b <= c /\ c <= b <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b) -> (b = c <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b)
5 eqlele
b = c <-> b <= c /\ c <= b
6 4, 5 ax_mp
(b <= c /\ c <= b <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b) -> (b = c <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b)
7 aneq
(b <= c <-> a ++ b <= a ++ c) -> (c <= b <-> a ++ c <= a ++ b) -> (b <= c /\ c <= b <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b)
8 leappend2
b <= c <-> a ++ b <= a ++ c
9 7, 8 ax_mp
(c <= b <-> a ++ c <= a ++ b) -> (b <= c /\ c <= b <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b)
10 leappend2
c <= b <-> a ++ c <= a ++ b
11 9, 10 ax_mp
b <= c /\ c <= b <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b
12 6, 11 ax_mp
b = c <-> a ++ b <= a ++ c /\ a ++ c <= a ++ b
13 3, 12 ax_mp
a ++ b = a ++ c <-> b = c

Axiom use

axs_prop_calc (ax_1, ax_2, ax_3, ax_mp, itru), axs_pred_calc (ax_gen, ax_4, ax_5, ax_6, ax_7, ax_10, ax_11, ax_12), axs_set (elab, ax_8), axs_the (theid, the0), axs_peano (peano1, peano2, peano5, addeq, muleq, add0, addS, mul0, mulS)