Module Polynomial.ProofFormat

Proof format used by the proof-generating procedures. It is fairly close to Coq 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
type proof =
| Done
| Step of int * prf_rule * proof
| Split of int * Vect.t * proof * proof
| Enum of int * prf_rule * Vect.t * prf_rule * proof list
| ExProof of int * int * int * var * var * var * proof
val normalise_proof : int -> proof -> int * proof
val output_prf_rule : Stdlib.out_channel -> prf_rule -> unit
val output_proof : Stdlib.out_channel -> proof -> unit
val add_proof : prf_rule -> prf_rule -> prf_rule
val mul_proof : prf_rule -> prf_rule -> prf_rule
module Env : sig ... end