sidekick/backend/dedukti.ml

38 lines
1 KiB
OCaml

(*
MSAT is free software, using the Apache license, see file LICENSE
Copyright 2014 Guillaume Bury
Copyright 2014 Simon Cruanes
*)
module type S = Backend_intf.S
module type Arg = sig
type proof
type formula
val prove : Format.formatter -> formula list -> unit
val context : Format.formatter -> proof -> unit
val translate : Format.formatter -> formula -> unit
end
module Make(S : Res.S)(A : Arg with type formula := S.atom and type proof := S.proof) = struct
let print_aux fmt = Format.fprintf fmt "@\n"
let fprintf fmt format = Format.kfprintf print_aux fmt format
let context fmt () =
fprintf fmt "(; Embedding ;)";
fprintf fmt "Prop : Type.";
fprintf fmt "_proof : Prop -> Type.";
fprintf fmt "(; Notations for clauses ;)";
fprintf fmt "_pos : Prop -> Prop -> Type.";
fprintf fmt "_neg : Prop -> Prop -> Type.";
fprintf fmt "[b: Prop, p: Prop] _pos b p --> _proof p -> _proof b.";
fprintf fmt "[b: Prop, p: Prop] _neg b p --> _pos b p -> _proof b."
let print fmt _ =
context fmt ();
()
end