Liking cljdoc? Tell your friends :D

vaelii.impl.strength

Assumption strengths on beliefs, and the derived defeat-class that resolves soft contradictions.

There are exactly two classes, and a user asserts content at either:

:monotonic known-true; indefeasible; never sent to a solver. :default defeasible; the common case — most of a common-sense KB.

They form a total order monotonic > default. In a contradiction the member of least class is defeated; :monotonic ('known true') content is never sent to a solver.

Derivation adds no class of its own. A justification confers min(its own strength, the weakest of its antecedents' classes), and a rule's own strength is read off its defeasibility: a bare rule confers :monotonic — it adds no defeasibility, so its conclusion is capped by whatever it rests on — and a set/defaultRule confers :default, because it introduces defeasibility. So a bare rule over :monotonic facts concludes :monotonic (it is monotonically entailed), and the same rule over a :default premise concludes :default.

There are exactly two classes; do not add a third. Undercutting a defeasible generality is done with exceptWhen (docs/exceptions.md) — the excepted rule states its own exception and simply does not fire — so no intermediate class is needed to out-rank one belief with another.

Assumption strengths on beliefs, and the derived *defeat-class* that resolves
soft contradictions.

There are exactly two classes, and a user asserts content at either:

  :monotonic  known-true; indefeasible; never sent to a solver.
  :default    defeasible; the common case — most of a common-sense KB.

They form a total order  monotonic > default.  In a contradiction the member of
*least* class is defeated; :monotonic ('known true') content is never sent to a
solver.

Derivation adds no class of its own.  A justification confers `min(its own
strength, the weakest of its antecedents' classes)`, and a rule's own strength is
read off its defeasibility: a **bare rule** confers :monotonic — it adds no
defeasibility, so its conclusion is capped by whatever it rests on — and a
**`set/defaultRule`** confers :default, because it introduces defeasibility.  So a
bare rule over :monotonic facts concludes :monotonic (it *is* monotonically
entailed), and the same rule over a :default premise concludes :default.

There are exactly two classes; do not add a third.  Undercutting a defeasible
generality is done with `exceptWhen` (docs/exceptions.md) — the excepted rule states
its own exception and simply does not fire — so no intermediate class is needed to
out-rank one belief with another.
raw docstring

assertableclj

The strengths a caller may put on an assertion.

The strengths a caller may put on an assertion.
raw docstring

assertable?clj

(assertable? s)

class-of-rankclj

(class-of-rank r)

defeasible?clj

(defeasible? class)

Is this class a plain default (the only solver-eligible class)?

Is this class a plain default (the only solver-eligible class)?
raw docstring

known-true?clj

(known-true? class)

Is this class strong enough to never be sent to a solver?

Is this class strong enough to never be sent to a solver?
raw docstring

maxclj

(max a b)

The stronger of two classes.

The stronger of two classes.
raw docstring

minclj

(min a b)

The weaker of two classes.

The weaker of two classes.
raw docstring

rank-ofclj

(rank-of class)

Numeric rank of a class (0 for unknown).

Numeric rank of a class (0 for unknown).
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close