package msat
Library containing a SAT solver that can be parametrized by a theory
Install
Dune Dependency
Authors
Maintainers
Sources
v0.9.1.tar.gz
md5=ba623630b0b8e0edc016079dd214c80b
sha512=51c133cefe8550125e7b1db18549e893bac15663fdd7a9fac87235c07de755f39eab9fc3cfdf6571612fd79b3d5b22f49f459581b480c7349bacddf2618c8a99
doc/src/msat.backend/Dedukti.ml.html
Source file Dedukti.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
(* MSAT is free software, using the Apache license, see file LICENSE Copyright 2015 Guillaume Bury *) module type S = Backend_intf.S module type Arg = sig type proof type lemma type formula val pp : Format.formatter -> formula -> unit val prove : Format.formatter -> lemma -> unit val context : Format.formatter -> proof -> unit end module Make(S : Msat.S)(A : Arg with type formula := S.formula and type lemma := S.lemma and type proof := S.proof) = struct module P = S.Proof let pp_nl fmt = Format.fprintf fmt "@\n" let fprintf fmt format = Format.kfprintf pp_nl fmt format let _clause_name = S.Clause.name let _pp_clause fmt c = let rec aux fmt = function | [] -> () | a :: r -> let f, pos = if S.Atom.sign a then S.Atom.formula a, true else S.Atom.formula (S.Atom.neg a), false in fprintf fmt "%s _b %a ->@ %a" (if pos then "_pos" else "_neg") A.pp f aux r in fprintf fmt "_b : Prop ->@ %a ->@ _proof _b" aux (S.Clause.atoms_l c) let context fmt p = 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."; A.context fmt p let pp fmt p = fprintf fmt "#NAME Proof."; fprintf fmt "(; Dedukti file automatically generated by mSAT ;)"; context fmt p; () end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>