EasyCrypt / easycrypt

EasyCrypt: Computer-Aided Cryptographic Proofs
MIT License
306 stars 46 forks source link

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

Open fdupress opened 2 months ago

fdupress commented 2 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 2 months ago

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

fdupress commented 2 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 1 month ago

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