examiners.n3 · output · proof · check · try it in the playground
The question
Wittgenstein participates in the philosophy course that Russell and Wittgenstein both teach. Participants are students, and a teacher who is not a student is an examiner. Every course with a participant also needs some examiner, so that rule’s conclusion has a blank node. Russell already satisfies it, so eyeron introduces no fresh examiner and counts exactly one. The example shows scoped negation, an existential that is introduced only when no known fact satisfies it, and a count over the result.
How many examiners are needed once the eligible teacher is recognized?
What we tell Eyeron
The following excerpts use the prefixes declared in the linked source. These are excerpts; the linked file contains the complete program.
# Facts
:philosophy :teacher :russell .
# Participants are students.
{
?course :participant ?person .
} => {
?person a :Student .
} .
{ … } => { … } reads “when the left side holds, conclude the right side.”
Names beginning with ? are variables: they stand for the values that make
the conditions match.
What Eyeron concludes
These are the saved conclusions.
:wittgenstein a :Student .
:philosophy :examiner :russell .
:philosophy :numberOfExaminers 1 .
The proof, step by step
eyeron -p records why the conclusions follow. This excerpt is one recorded
step from the saved proof:
{ :wittgenstein a :Student . }
pe:rule 1;
pe:binding
[ pe:var "course"; pe:value :philosophy ],
[ pe:var "person"; pe:value :wittgenstein ];
pe:uses { :philosophy :participant :wittgenstein . }.
pe:rule 1 identifies the source rule used by this step. pe:binding records the values substituted for variables; pe:uses lists the premises the step depends on. Those premises have their own supporting steps in the full proof.
Checked: what the report says
The saved check report gives this verdict and these selected conditions:
# checked with obligations: 8 steps, 7 verified, 1 trusted
pe:verdict pe:checkedWithObligations;
pe:condition [ pe:id "C1"; pe:name "resolution"; pe:checked 5; pe:failed 0 ];
pe:condition [ pe:id "C5"; pe:name "re-decision"; pe:checked 3; pe:failed 0 ];
pe:condition [ pe:id "C9"; pe:name "search closure"; pe:checked 3; pe:failed 0 ];
pe:condition [ pe:id "C10"; pe:name "call fidelity"; pe:checked 3; pe:failed 0 ];
Resolution checks that the recorded facts and rule applications match the source program.
Re-decision recomputes the recorded built-in operations.
Search closure checks the supplied evidence for current-scope tests.
Call fidelity checks the answer against the question as it was called.
The verdict is checked with obligations. The result is conditional on the
outstanding obligations listed in the full report; the excerpt does not
discharge them. The report records these obligation kinds: collected.
Try it
eyeron examples/examiners.n3
eyeron -p examples/examiners.n3
eyeron -c examples/examiners.n3
References
Takeaway
An existential requirement can already be satisfied by an individual present in the data.
