MoonBit DRAT/LRAT verification and checked certificate conversion
pub(all) enum CheckError {
BadNumber(Int)
BadCnf(Int)
BadProof(Int)
BadHint(Int, Int)
MissingEmptyClause
BadBinary(Int)
ResourceLimit(Int)
UnsupportedOutputFormat
}pub(all) struct CheckLimits {
max_steps : Int
max_clause_literals : Int
max_hints_per_step : Int
max_clause_id : Int
}pub(all) struct CheckStats {
initial_clauses : Int
additions : Int
deletions : Int
rat_additions : Int
}pub(all) struct ClauseLifetime {
id : Int
initial : Bool
added_at : Int
deleted_at : Int?
use_count : Int
last_used_at : Int?
}pub(all) struct ConversionOptions {
max_work : Int
honor_unit_deletions : Bool
}pub(all) struct DependencyEdge {
from : Int
to : Int
negative : Bool
}pub(all) enum DiagnosticKind {
MissingClause
DeletedBeforeUse
NonMonotonicId
DuplicateAdditionId
EmptyProof
NoEmptyAddition
ExcessiveHints
}pub(all) struct FormulaMetrics {
variables : Int
clauses : Int
literals : Int
units : Int
tautologies : Int
minimum_clause_size : Int
maximum_clause_size : Int
}pub(all) struct LifetimeReport {
clauses : Array[ClauseLifetime]
total_references : Int
references_to_missing_ids : Int
references_after_deletion : Int
peak_active_clauses : Int
}pub(all) enum LimitViolation {
TooManySteps(Int)
TooManyClauseLiterals(Int)
TooManyHints(Int)
ClauseIdTooLarge(Int)
}pub(all) enum LiteralState {
True
False
Unknown
}pub(all) struct PreflightReport {
ok : Bool
diagnostics : Array[Diagnostic]
limits_checked : Bool
forward_references : Int
referenced_ids : Int
}pub(all) struct ProofMetrics {
steps : Int
additions : Int
deletions : Int
maximum_id : Int
total_clause_literals : Int
total_hints : Int
maximum_clause_size : Int
maximum_hint_size : Int
empty_additions : Int
rat_steps : Int
}pub(all) struct ProofSession {
variable_count : Int
active : Map[Int, Array[Int]]
index : LiteralIndex
next_id : Int
additions : Int
deletions : Int
}pub(all) struct ProofSummary {
step_count : Int
addition_count : Int
deletion_count : Int
maximum_id : Int
has_empty_addition : Bool
rat_candidate_count : Int
hint_count : Int
deleted_clause_reference_count : Int
}pub(all) enum ReplayError {
InvalidFormula
InvalidProof
NonMonotonicId(Int)
DuplicateClause(Int)
UnknownDeletion(Int)
InvalidLiteral(Int, Int)
InvalidClause(Int)
MissingFinalEmptyClause
}pub(all) struct ReplayResult {
final_empty : Bool
additions : Int
deletions : Int
active_clauses : Int
}fn convert_drat_steps(formula : Formula, steps : Array[DratStep], options : ConversionOptions) -> Result[ConversionResult, CheckError]fn convert_proof(cnf : String, input : Bytes, from : ProofFormat, to : ProofFormat) -> Result[Bytes, CheckError]fn process_proof(cnf : String, input : Bytes, format : ProofFormat, options : ConversionOptions) -> Result[ConversionResult, CheckError]fn replay_structure(formula : Formula, steps : Array[ProofStep]) -> Result[ReplayResult, ReplayError]fn verify_input(cnf : String, input : Bytes, format : ProofFormat) -> Result[CheckStats, CheckError]Install
Download zipMoonBit DRAT/LRAT verification and checked certificate conversion