(************************************************************************)
(*                                                                      *)
(* Micromega: A reflexive tactic using the Positivstellensatz           *)
(*                                                                      *)
(*  Frédéric Besson (Irisa/Inria) 2006-2008                             *)
(*                                                                      *)
(************************************************************************)
Open Scope Z_scope.
(* false in Q : x=1/2 and n=1 *)
Goal forall a1 da na b1 db nb,
a1 * da = na ->
b1 * db = nb  ->
a1 * b1 *  da * db = na * nb.
(* From Laurent Théry *)
Goal forall (x y : Z), x = 0 -> x * y = 0.
Goal forall (x y : Z), x = 0 -> x * y = 0.
Goal forall (x y : Z), 2*x = 0 -> x * y = 0.
Goal forall (x y: Z), - x*x >= 0 -> x * y = 0.
(* Rule of signs *)
(* Other (simple) examples *)
(* from hol_light/Examples/sos.ml *)

Lemma hol_light1 : forall a1 a2 b1 b2,
a1 >= 0 -> a2 >= 0 ->
(a1 * a1 + a2 * a2 = b1 * b1 + b2 * b2 + 2) ->
(a1 * b1 + a2 * b2 = 0) -> a1 * a2 - b1 * b2 >= 0.