[Prev][Next][Index]

How do I prove an asserted fact with LP?



Consider the following simple LP script

  |  declare sort S
  |  declare op   s: -> S
  |  declare var  x: S
  |  assert  x = s
  |  prove   x = s

Executing this script results in the following fact:

  |  % display facts
  |  
  |  Formulas:
  |  
  |  user.1: x = s

and the proof is suspended:

  |  % display proof
  |  
  |  Conjecture user.2: x = s
  |    Attempting a proof by normalization
  |  

At this point, how can I make use of the fact `user.1' to prove the conjecture
`user.2'?  I have tried the apply command, but that doesn't help: the system
still considers ``x = s'' to be in normal form.


I have found a work-around (although I hope there is another way): if I
assert ``(x = s) = true'' instead of ``x = s'' the proof succeeds

  |  
  |  Conjecture user.2
  |  [] Proved by normalization.
  |  

even though we seem to have the same facts

  |  % display facts
  |  
  |  Formulas:
  |  
  |  user.1: x = s

Patrice

Follow-Up(s):