Let power_nzero x : power x p <> 0.
Let lt_minus_cancel a b c : a < b < c -> b - a - 1 < c - a - 1.
End power_decomp_uniq.
Fact mult_2_eq_plus x : x + x = 2 *x.
Fact power_2_n_ij_neq i j n : i <> j -> power (S n) 2 <> power i 2 + power j 2.
Fact power_2_inj i j : power i 2 = power j 2 -> i = j.
Let power_plus_lt a b c : a < b < c -> power a 2 + power b 2 < power c 2.
Let power_inj_2 i1 j1 i2 j2 :
j1 < i1
-> j2 < i2
-> power i1 2 + power j1 2 = power i2 2 + power j2 2
-> i1 = i2 /\ j1 = j2.

(* Specifications: *)
Theorem sum_2_power_2_injective i1 j1 i2 j2 :
j1 <= i1
-> j2 <= i2
-> power i1 2 + power j1 2 = power i2 2 + power j2 2
-> i1 = i2 /\ j1 = j2.