# The prove output of Hets may contain proofs for different ontologies.
end
end
end
end
end
end
case proof_info[:result]
when 'Proved'
when 'Disproved'
else
end
end
if proof_status.identifier == 'CSA' &&
else
end
end
Prover.where(name: name).
end
0
else
end
end
if proof_info[:tactic_script_time_limit] &&
end
end
end
else
[[], [], []]
end
end
used_axioms = []
used_theorems = []
generated_axioms = []
used_axioms << axiom if axiom.is_a?(Axiom)
used_theorems << axiom if axiom.is_a?(Theorem)
generated_axioms << axiom if axiom.is_a?(GeneratedAxiom)
end
[used_axioms, used_theorems, generated_axioms]
end
# Logic translations applied before proving can introduce new axioms that
# are not stored as sentences in our database. They need to be
# distinguished from sentences.
def find_sentence_or_generate_axiom(axiom_name, proof_attempt)
sentence = Sentence.
where(ontology_id: proof_attempt.theorem.ontology.id,
name: axiom_name).first
sentence || generate_axiom(axiom_name, proof_attempt)
end
def generate_axiom(axiom_name, proof_attempt)
generated_axiom = GeneratedAxiom.new
generated_axiom.name = axiom_name
generated_axiom.proof_attempt = proof_attempt
generated_axiom.save
generated_axiom
end
def create_prover_output(proof_attempt, proof_info)
prover_output = ProverOutput.new
prover_output.proof_attempt = proof_attempt
prover_output.content = proof_info[:prover_output]
prover_output.save!
end
def correct_ontology?(ontology, proof_info)
ontology.name == proof_info[:ontology_name] ||
proof_attempt.proof_attempt_configuration.prove_options.
single_theorem_input_type?
end
end
end
end