BreakOut 2020 11 30 Lasse - rocq-prover/rocq GitHub Wiki
Main problem: keeping per-plugin and per-tactic state in the summary.
attending: Emilio Gallego, Gaëtan Gilbert, Lasse Blaauwbroek
As of now: hack to redefine every tactic as a "side-effect" that is to
say, modifying the Summary. This creates many problems.
Suggestion: Keep tactic state in the evar_map, a first-try PR would go like this:
- modify
Declare, such that: Proof.startreads from the summary and updates theevar_mapwith the custom state.- Add a field to
proof_objectto keep the custom state at end of proof. - update
close_proofandclose_delayed_proofto put the state in the new field. - update
saveandsave_lemma_proved_delayedto push the state into summary.
Comments:
GG: what happens with nested proofs? does it matter? EJGA: I think with the above the proofs would look like independent. This may actually be a good thing. just call it not supported I guess
Lemma foo : ...
Proof. (* pstate gets state 0 *)
Lemma bar: ...
Proof. (* pstate gets state 0 *)
Qed. (* summary set to state 1 *)
(* inject_non_pstate *)
Qed. (* summary set to state 1', not accounting for state 1 *)
EJGA: see inject_non_pstate
Some extra discussion about comTactic, suitability of API for
multicore , incremental checking.