proposition: Theorem mul_left_cancel (a b c : mynat) (ha : a ≠ 0) : a * b = a * c → b = c.
proof: Proof. revert b. induction c. rewrite mul_zero. intro b. rewrite mul_eq_zero_iff. intro f. destruct f as [f|g]. exfalso. apply ha. exact f. exact g. intro b. intro f. destruct b. rewrite mul_zero in f. symmetry in f. rewrite mul_eq_zero_iff in f. destruct f as [f|g]. exfalso. apply ha. exact f. symmetry. exact g. repeat rewrite mul_succ in f. rewrite add_right_cancel_iff in f. apply IHc in f. rewrite succ_eq_succ_iff. exact f. Qed.
imports: Unicode.Utf8 Game.Mynat.Definition Game.Mynat.Add Game.Mynat.Mul Game.World.Addition Game.World.Multiplication Game.World.Proposition Game.World.AdvancedProposition Game.World.AdvancedAddition