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_rule | 
val 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