proposition: Theorem f3_equal : forall (A B C D: Type) (f: A -> B -> C -> D) (x1 x2: A)(y1 y2: B)(z1 z2: C), (x1 = x2 /\ y1 = y2 /\ z1 = z2) -> f x1 y1 z1 = f x2 y2 z2.
proof: Proof. intros A B C D f x1 x2 y1 y2 z1 z2 eq. destruct eq as [eq1 [eq2 eq3]]. rewrite eq1. rewrite eq2. rewrite eq3. reflexivity. Qed.
imports: Coq(Bool Arith Arith.Peano_dec Arith.Compare_dec List)