simple induction a; simple induction b; simpl in |- *.
rewrite full_adder_carry_sym1. rewrite full_adder_carry_true. trivial.
rewrite full_adder_carry_false. trivial.
rewrite full_adder_carry_true. trivial.
rewrite full_adder_carry_sym1. rewrite full_adder_carry_false. trivial.
Qed.
(****************************************************************)

(* Specifications: *)
Theorem full_adder_ok :
forall a b c : bool,
bool_to_nat (full_adder_sum a b c) +
(bool_to_nat (full_adder_carry a b c) + bool_to_nat (full_adder_carry a b c)) =
bool_to_nat a + bool_to_nat b + bool_to_nat c.