[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PVS-Help] Getting the prover to use axioms



You have to use the axiom as a lemma, e.g.,

(lemma "AxMaxId)

and then

(assert).

Cesar

Nikhil Dinesh wrote:
> Hi,
> 
> I've been unable get the prover to use axioms in the theory. For example:
> 
> state : THEORY
> 
>   BEGIN
> 
>   State : TYPE =
>    [#
>      fDomain : [nat -> bool],
>      fGetAtt : [nat, string -> string],
>      fMaxId : nat
>    #]
> 
> 
>   s : VAR State
>   i : VAR nat
> 
>   AxMaxId : AXIOM
>     FORALL s:
>      LET maxId = fMaxId(s) IN
>      LET d = fDomain(s) IN
>       FORALL i: d(i) => i < maxId
> 
>    ThCheck2 : CONJECTURE
>     FORALL s:
>      LET d = fDomain(s) in
>      LET maxId = fMaxId(s) IN
>       FORALL i: d(i) => i < maxId
> 
> 
>   END state
> 
> The conjecture is identical to the axiom...so it should be provable,
> right? Here is the output of M-x  pr:
> 
> ThCheck2 : 
> 
>   |-------
> {1}   FORALL s:
>         LET d = fDomain(s) IN
>           LET maxId = fMaxId(s) IN FORALL i: d(i) => i < maxId
> 
> Rule? (grind)
> Trying repeated skolemization, instantiation, and if-lifting,
> this simplifies to:
> ThCheck2 : 
> 
> {-1}  i!1 >= 0
> {-2}  fDomain(s!1)(i!1)
>   |-------
> {1}   i!1 < fMaxId(s!1)
> 
> How do I get the prover to use AxMaxId?
> 
> Thanks,
> -Nikhil
> 
> 
> 


-- 
Cesar A. Munoz H., Senior Staff Scientist     mailto:munoz@nianet.org
National Institute of Aerospace         mailto:Cesar.A.Munoz@nasa.gov
100 Exploration Way  Room 214       http://research.nianet.org/~munoz
Hampton, VA 23666, USA   Tel. +1 (757) 325 6907 Fax +1 (757) 325 6988
GPGP Finger Print: 9F10 F3DF 9D76 1377 BCB6  1A18 6000 89F5 C114 E6C4