EasyCrypt / easycrypt

EasyCrypt: Computer-Aided Cryptographic Proofs
MIT License
320 stars 49 forks source link

Generate named SMT database when defining `inductive` predicates #568

Open fdupress opened 5 months ago

fdupress commented 5 months ago

The database for an inductive indpred would include the indpred_ind principle, and the per-constructor lemmas, and could be used as smt(@indpred_smt) (for example).

This is to make rapid exploration possible when defining complex invariants as inductive predicates.

strub commented 5 months ago

By constructor lemmas, you mean injectivity/non-confusion?

fdupress commented 5 months ago

No. I mean, given

inductive popo x =
| Foo of (P x).

The lemma that says forall x, P x => popo x.

strub commented 4 months ago

In fact, inductive predicates are sent as abstract predicates to SMT solvers. Does not seem optimal to me.