
module Issue16

predicate p int
predicate q int
function f int : int

goal g2: forall x. p x -> forall _y:int. x = 42 -> q x

goal g1: forall x. p x -> forall y. x = f y -> q x

end

module More

use int.Int
function f int : int

goal g3: forall x:int.
  forall z. z = x+1 ->
  forall y. y+1 = z ->
  x = f y -> y = f y + 1

predicate p int
predicate q int

goal g2: forall x. p x -> forall y:int. x = y -> q x

end

module Other

use int.Int

predicate p int

constant x : int

axiom H1 : p x

constant y : int = 3

axiom H2 : x = y+1

goal g : x*y = 0

end