Cariani (2013): 'Ought' and resolution semantics #
This file formalizes [Car13]'s resolution semantics for ought. Reading ought as a
universal quantifier over the best worlds validates INHERITANCE, closure of ought under
entailment of the prejacent, and the paper takes the classical counterexamples at face value:
Joan ought to attend her classes does not entail Joan ought to either attend her classes or
burn down the philosophy department ([Ros44]), and Procrastinate ought to accept and write
the review does not entail Procrastinate ought to accept ([JP86]). The
account keeps COARSENESS, on which an ought-sentence can be true although some way of making its
prejacent true is impermissible, by relativizing ought to a resolution: a partition of the
modal base into the agent's options (Setoid W), an ordering of the options, and a benchmark
below which an option is impermissible (ResolutionContext). Ought p holds when the
resolution decides p, every best option entails p, and every option entailing p meets the
benchmark (Ought), so that one impermissible option compatible with the prejacent falsifies
the sentence, the paper's COARSE FALSEMAKING (not_ought_of_not_meetsBenchmark), while
impermissible ways of p that no option distinguishes leave it true.
Both puzzles refute INHERITANCE (not_inheritance_ross, not_inheritance_proc). Permission has
two candidate entries, some option at the benchmark entails p or some best option does
(Permitted₁, Permitted₂); ought entails both, both are closed under entailment, and since
that closure together with the duality of ought and permission would restore INHERITANCE
(inheritance_of_dual), ought is the dual of neither. A boxing semantics is the special case
of the finest resolution with a benchmark every option meets (ought_bot_iff).
Implementation notes #
- The ordering on options is a valuation of worlds in a preordered scale that the resolution
decides, so that it ranks options, with the benchmark a threshold of the scale; this is
neutral between the ranking and quantitative scales the paper allows, and the best options
are the
MaximalForelements of the valuation. The paper's examples value an option at the rank of its best world (ofRanking). - The resolution partitions the modal base itself, so the modal base is not a separate parameter and the ordering does not vary with it. The paper's third puzzle, conditional oughts under the restrictor analysis of conditionals, needs the modal base and is not formalized.
- Visibility is
Setoid.Decides, the resolution settling the prejacent.
References #
A resolution context: the resolution, a partition of the modal base into the agent's options; the ordering, a valuation of worlds that the resolution decides, so that it ranks options; and the benchmark, the threshold of the scale below which an option is impermissible.
- resolution : Setoid W
The resolution: worlds in one cell realize the same option.
- value : W → V
The ordering: the value of a world's option in the scale.
- value_decided : self.resolution ≤ Setoid.ker self.value
The valuation is constant on options.
- benchmark : V
The benchmark: the least permissible value.
Instances For
The context of a ranked action space: an option is valued at the rank of its best world.
Equations
- Cariani2013.ResolutionContext.ofRanking s rank benchmark = { resolution := s, value := fun (w : W) => {x : W | s x w}.sup rank, value_decided := ⋯, benchmark := benchmark }
Instances For
The clauses #
p is visible when the resolution decides it: each option entails p or its negation.
Equations
- rc.IsVisible p = rc.resolution.Decides p
Instances For
An option meets the benchmark when its value is at least the benchmark.
Equations
- rc.MeetsBenchmark w = (rc.benchmark ≤ rc.value w)
Instances For
An option is best when no option is strictly better.
Instances For
p is optimal when every best option entails it.
Equations
- rc.IsOptimal p = ∀ (w : W), rc.IsBest w → rc.resolution.cell w ⊆ p
Instances For
p is strongly permissible when every option that entails it meets the benchmark.
Equations
- rc.IsStronglyPermissible p = ∀ (w : W), rc.resolution.cell w ⊆ p → rc.MeetsBenchmark w
Instances For
The operators #
Ought p: p is visible, optimal, and strongly permissible.
Equations
- rc.Ought p = (rc.IsVisible p ∧ rc.IsOptimal p ∧ rc.IsStronglyPermissible p)
Instances For
Permitted p, first entry: some option that entails p meets the benchmark.
Equations
- rc.Permitted₁ p = ∃ (w : W), rc.resolution.cell w ⊆ p ∧ rc.MeetsBenchmark w
Instances For
Permitted p, second entry: some best option entails p.
Equations
- rc.Permitted₂ p = ∃ (w : W), rc.IsBest w ∧ rc.resolution.cell w ⊆ p
Instances For
INHERITANCE: ought is closed under entailment of the prejacent.
Equations
- rc.Inheritance = ∀ (p q : Set W), p ⊆ q → rc.Ought p → rc.Ought q
Instances For
Equations
- rc.instDecidableIsBest w = { decide := decide True && decide (∀ (x : W), True → rc.value w ≤ rc.value x → rc.value x ≤ rc.value w), reflects_decide := ⋯ }
Equations
- rc.instDecidableIsOptimal p = { decide := decide (∀ a ∈ Finset.univ, (fun (x : W) => rc.IsBest x → rc.resolution.cell x ⊆ p) a), reflects_decide := ⋯ }
Equations
- rc.instDecidableIsStronglyPermissible p = { decide := decide (∀ a ∈ Finset.univ, (fun (x : W) => rc.resolution.cell x ⊆ p → rc.MeetsBenchmark x) a), reflects_decide := ⋯ }
Equations
- rc.instDecidableOught p = { decide := decide (rc.IsVisible p) && decide (rc.IsOptimal p ∧ rc.IsStronglyPermissible p), reflects_decide := ⋯ }
Equations
- rc.instDecidablePermitted₁ p = { decide := decide (∃ a ∈ Finset.univ, (fun (x : W) => rc.resolution.cell x ⊆ p ∧ rc.MeetsBenchmark x) a), reflects_decide := ⋯ }
Equations
- rc.instDecidablePermitted₂ p = { decide := decide (∃ a ∈ Finset.univ, (fun (x : W) => rc.IsBest x ∧ rc.resolution.cell x ⊆ p) a), reflects_decide := ⋯ }
Coarse falsemaking and permission #
COARSE FALSEMAKING: one option below the benchmark that entails p falsifies ought p,
however good the other options are.
Some option is best as soon as there are options.
What one ought to do some best option does.
What one ought to do is permitted: a best option does it by optimality and meets the benchmark by strong permissibility.
PI: permission is closed under entailment of the prejacent, on either entry.
The boxing special case #
On the finest resolution with every option at the benchmark, ought p is quantification over the best worlds: the boxing semantics is a resolution semantics.
Duality #
DUALITY of an operator with a permission closed under entailment yields INHERITANCE.
Where INHERITANCE fails, ought is not the dual of benchmark permission.
Where INHERITANCE fails, ought is not the dual of best-option permission.
Ross's paradox #
Equations
- Cariani2013.instDecidableEqRossW x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Cariani2013.instFintypeRossW = { elems := { val := ↑Cariani2013.RossW.enumList, nodup := Cariani2013.RossW.enumList_nodup }, complete := Cariani2013.instFintypeRossW._proof_1 }
Attending is best, staying home next, burning down the department worst.
Equations
Instances For
Joan's context: each action its own option, the benchmark at staying home, so that burning down the department is the one impermissible option.
Instances For
Equations
Joan ought to attend her classes is true.
The disjunction is visible, so only the permissibility clause rejects it: burning down the department entails attend or burn and is below the benchmark.
Joan ought to either attend her classes or burn down the philosophy department is false.
Staying home is permitted but not obligatory: it is at the benchmark and not best.
Ross's paradox refutes INHERITANCE.
And so ought is the dual of neither permission.
Procrastinate #
Equations
- Cariani2013.instDecidableEqProcW x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Cariani2013.instFintypeProcW = { elems := { val := ↑Cariani2013.ProcW.enumList, nodup := Cariani2013.ProcW.enumList_nodup }, complete := Cariani2013.instFintypeProcW._proof_1 }
Accepting and writing is best; declining is better than accepting and not writing, which is what Procrastinate would in fact do.
Equations
Instances For
Procrastinate's context, with the benchmark at declining.
Instances For
Equations
Procrastinate ought to accept and write the review is true.
Procrastinate ought to accept is false: accepting without writing is a way of accepting and is below the benchmark.
Procrastinate refutes INHERITANCE too, on a prejacent weakened by an impermissible option rather than by a disjunct.
Jenny's ways to school #
Equations
- Cariani2013.instDecidableEqMode x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Cariani2013.instFintypeMode = { elems := { val := ↑Cariani2013.Mode.enumList, nodup := Cariani2013.Mode.enumList_nodup }, complete := Cariani2013.instFintypeMode._proof_1 }
Running is best, walking and swimming tie, driving is worst.
Equations
Instances For
The proposition that Jenny goes to school by m; a world also records whether she has a cup
of coffee, which the resolution ignores.
Equations
- Cariani2013.mode m = {w : Cariani2013.Mode × Bool | w.1 = m}
Instances For
Jenny's context: the ways to school as options, coffee below the resolution, and the benchmark between walking and driving, so that driving is the one impermissible option.
Equations
- Cariani2013.jennyContext = Cariani2013.ResolutionContext.ofRanking (Setoid.ker Prod.fst) (fun (x : Cariani2013.Mode × Bool) => Cariani2013.jennyRank x.1) 2
Instances For
Running is permissible, optimal, and strongly permissible, so Jenny ought to run.
Running or driving is permissible and optimal but not strongly permissible.
Swimming or driving is permissible but neither strongly permissible nor optimal.
Running or walking is visible in Jenny's resolution; having a cup of coffee is not.