Polynomial.ProofFormatProof format used by the proof-generating procedures. It is fairly close to Rocq format but a bit more liberal.
It is used for proofs over Z, Q, R. However, certain constructions e.g. CutPrf are only relevant for Z.
type prf_rule = | Annot of string * prf_rule| Hyp of int| Def of int| Ref of int| Cst of Micromega_core_plugin.NumCompat.Q.t| Zero| Square of Vect.t| MulC of Vect.t * prf_rule| Gcd of Micromega_core_plugin.NumCompat.Z.t * prf_rule| MulPrf of prf_rule * prf_rule| AddPrf of prf_rule * prf_rule| CutPrf of prf_rule| LetPrf of prf_rule * prf_ruleval pr_size : prf_rule -> Micromega_core_plugin.NumCompat.Q.tval output_prf_rule : Stdlib.out_channel -> prf_rule -> unitval output_proof : Stdlib.out_channel -> proof -> unitval mul_cst_proof : Micromega_core_plugin.NumCompat.Q.t -> prf_rule -> prf_rulemodule Env : sig ... endval compile_proof :
Env.t ->
proof ->
Micromega_core_plugin.Micromega.zArithProofval cmpl_prf_rule :
('a Micromega_core_plugin.Micromega.pExpr ->
'a Micromega_core_plugin.Micromega.pol) ->
(Micromega_core_plugin.NumCompat.Q.t -> 'a) ->
Env.t ->
prf_rule ->
'a Micromega_core_plugin.Micromega.psatzval proof_of_farkas :
prf_rule Micromega_core_plugin.Mutils.IMap.t ->
Vect.t ->
prf_ruleval simplify_proof : proof -> proof * Micromega_core_plugin.Mutils.ISet.t