textâ¹A \emph{choice set} is the subset of @{term "A"} where every element
that subset is (weakly) preferred to every other element of @{term "A"}
respect to a given RPR. A \emph{choice function} yields a non-empty
set whenever @{term "A"} is non-empty.âº
definition choiceSet :: "'a set ==> 'a RPR ==> 'a set"where "choiceSet A r â¡ { x â A . ây â A. x ⪯ y }"
definition choiceFn :: "'a set ==> 'a RPR ==> bool"where "choiceFn A r â¡âA' â A. A' â {} â¶ choiceSet A' r â {}"
lemma choiceSetI[intro]: "[ x â A; â§y. y â A ==> x ⪯ y ]==> x â choiceSet A r" unfolding choiceSet_def by simp
lemma choiceFnI[intro]: "(â§A'. [ A' â A; A' â {} ]==> choiceSet A' r â {}) ==> choiceFn A r" unfolding choiceFn_def by simp
textâ¹If a complete and reflexive relation is also \emph{quasi-transitive}
will yield a choice function.âº
definition quasi_trans :: "'a RPR ==> bool"where "quasi_trans r â¡âx y z. x ⺠y â§ y ⺠z â¶ x ⺠z"
lemma quasi_transI[intro]: "(â§x y z. [ x ⺠y; y ⺠z ]==> x ⺠z) ==> quasi_trans r" unfolding quasi_trans_def by blast
lemma quasi_transD: "[ x ⺠y; y ⺠z; quasi_trans r ]==> x ⺠z" unfolding quasi_trans_def by blast
lemma trans_imp_quasi_trans: "trans r ==> quasi_trans r" by (rule quasi_transI, unfold strict_pref_def trans_def, blast)
lemma r_c_qt_imp_cf: assumes finiteA: "finite A" and c: "complete A r" and qt: "quasi_trans r" and r: "refl_on A r" shows"choiceFn A r" proof fix B assume B: "B â A""B â {}" with finite_subset finiteA have finiteB: "finite B"by auto from finiteB B show"choiceSet B r â {}" proof(induct rule: finite_subset_induct') case empty with B show ?caseby auto next case (insert a B) hence finiteB: "finite B" and aA: "a â A" and AB: "B â A" and aB: "a â B" and cF: "B â {} ==> choiceSet B r â {}"by - blast show ?case proof(cases "B = {}") case True with aA r show ?thesis unfolding choiceSet_def by blast next case False with cF obtain b where bCF: "b â choiceSet B r"by blast from AB aA bCF complete_refl_on[OF c r] have"a ⺠b ⨠b ⪯ a"unfolding choiceSet_def strict_pref_def by blast thus ?thesis proof assume ab: "b ⪯ a" with bCF show ?thesis unfolding choiceSet_def by auto next assume ab: "a ⺠b" have"a â choiceSet (insert a B) r" proof(rule ccontr) assume aCF: "a â choiceSet (insert a B) r" from aB have"â§b. b â B ==> a â b"by auto with aCF aA AB c r obtain b' where B: "b' â B""b' ⺠a" unfolding choiceSet_def complete_def strict_pref_def by blast with ab qt have"b' ⺠b"by (blast dest: quasi_transD) with bCF B show False unfolding choiceSet_def strict_pref_def by blast qed thus ?thesis by auto qed qed qed qed
lemma rpr_choiceFn: "[ finite A; rpr A r ]==> choiceFn A r" unfolding rpr_def by (blast dest: trans_imp_quasi_trans r_c_qt_imp_cf)
(* **************************************** *)
subsectionâ¹Social Choice Functions (SCFs)âº
textâ¹A \emph{social choice function} (SCF), also called a
emph{collective choice rule} by Sen citeâ¹â¹p28⺠in "Sen:70a"âº, is a function that
aggregates society's opinions, expressed as a profile, into a
relation.âº
textâ¹The least we require of an SCF is that it be \emph{complete} and
function of the profile. The latter condition is usually implied by
conditions, such as @{term "iia"}.âº
definition
SCF :: "('a, 'i) SCF ==> 'a set ==> 'i set ==> ('a set ==> 'i set ==> ('a, 'i) Profile ==> bool) ==> bool" where "SCF scf A Is Pcond â¡ (âP. Pcond A Is P â¶ (complete A (scf P)))"
lemma SCFI[intro]: assumes c: "â§P. Pcond A Is P ==> complete A (scf P)" shows"SCF scf A Is Pcond" unfolding SCF_def using assms by blast
lemma SCF_completeD[dest]: "[ SCF scf A Is Pcond; Pcond A Is P ]==> complete A (scf P)" unfolding SCF_def by blast
(* **************************************** *)
subsectionâ¹Social Welfare Functions (SWFs)âº
textâ¹A \emph{Social Welfare Function} (SWF) is an SCF that expresses the
's opinion as a single RPR.
some situations it might make sense to restrict the allowable
.âº
definition
SWF :: "('a, 'i) SCF ==> 'a set ==> 'i set ==> ('a set ==> 'i set ==> ('a, 'i) Profile ==> bool) ==> bool" where "SWF swf A Is Pcond â¡ (âP. Pcond A Is P â¶ rpr A (swf P))"
lemma SWF_rpr[dest]: "[ SWF swf A Is Pcond; Pcond A Is P ]==> rpr A (swf P)" unfolding SWF_def by simp
(* **************************************** *)
subsectionâ¹General Properties of an SCFâº
textâ¹An SCF has a \emph{universal domain} if it works for all profiles.âº
definition universal_domain :: "'a set ==> 'i set ==> ('a, 'i) Profile ==> bool"where "universal_domain A Is P â¡ profile A Is P"
declare universal_domain_def[simp]
textâ¹An SCF is \emph{weakly Pareto-optimal} if, whenever everyone strictly
@{term "x"} to @{term "y"}, the SCF does too.âº
definition
weak_pareto :: "('a, 'i) SCF ==> 'a set ==> 'i set ==> ('a set ==> 'i set ==> ('a, 'i) Profile ==> bool) ==> bool" where "weak_pareto scf A Is Pcond â¡ (âP x y. Pcond A Is P â§ x â A â§ y â A â§ (âi â Is. x P i)⺠y) â¶ x scf P)⺠y)"
lemma weak_paretoI[intro]: "(â§P x y. [Pcond A Is P; x â A; y â A; â§i. iâIs ==> x P i)⺠y]==> x scf P)⺠y) ==> weak_pareto scf A Is Pcond" unfolding weak_pareto_def by simp
lemma weak_paretoD: "[ weak_pareto scf A Is Pcond; Pcond A Is P; x â A; y â A; (â§i. i â Is ==> x P i)⺠y) ]==> x scf P)⺠y" unfolding weak_pareto_def by simp
textâ¹
SCF satisfies \emph{independence of irrelevant alternatives} if, for two
profiles @{term "P"} and @{term "P'"} where for all individuals
{term "i"}, alternatives @{term "x"} and @{term "y"} drawn from set @{term
S"} have the same order in @{term "P i"} and @{term "P' i"}, then
@{term "x"} and @{term "y"} have the same order in @{term "scf
"} and @{term "scf P'"}.
âº
definition iia :: "('a, 'i) SCF ==> 'a set ==> 'i set ==> bool"where "iia scf S Is â¡ (âP P' x y. profile S Is P â§ profile S Is P' â§ x â S â§ y â S â§ (âi â Is. ((x P i)⪯ y) â· (x P' i)⪯ y)) â§ ((y P i)⪯ x) â· (y P' i)⪯ x))) â¶ ((x scf P)⪯ y) â· (x scf P')⪯ y)))"
lemma iiaI[intro]: "(â§P P' x y. [ profile S Is P; profile S Is P'; x â S; y â S; â§i. i â Is ==> ((x P i)⪯ y) â· (x P' i)⪯ y)) â§ ((y P i)⪯ x) â· (y P' i)⪯ x)) ]==> ((x swf P)⪯ y) â· (x swf P')⪯ y))) ==> iia swf S Is" unfolding iia_def by simp
lemma iiaE: "[ iia swf S Is; {x,y} â S; a â {x, y}; b â {x, y}; â§i a b. [ a â {x, y}; b â {x, y}; i â Is ]==> (a P' i)⪯ b) â· (a P i)⪯ b); profile S Is P; profile S Is P' ] ==> (a swf P)⪯ b) â· (a swf P')⪯ b)" unfolding iia_def by (simp, blast)
(* **************************************** *)
subsectionâ¹Decisiveness and Semi-decisivenessâº
textâ¹This notion is the key to Arrow's Theorem, and hinges on the use of
preference citeâ¹â¹p42⺠in "Sen:70a"âº.âº
textâ¹A coalition @{term "C"} of agents is \emph{semi-decisive} for @{term
x"} over @{term "y"} if, whenever the coalition prefers @{term "x"} to
{term "y"} and all other agents prefer the converse, the coalition
.âº
definition semidecisive :: "('a, 'i) SCF ==> 'a set ==> 'i set ==> 'i set ==> 'a ==> 'a ==> bool"where "semidecisive scf A Is C x y â¡ C â Is â§ (âP. profile A Is P â§ (âi â C. x P i)⺠y) â§ (âi â Is - C. y P i)⺠x) â¶ x scf P)⺠y)"
lemma semidecisiveI[intro]: "[ C â Is; â§P. [ profile A Is P; â§i. i â C ==> x P i)⺠y; â§i. i â Is - C ==> y P i)⺠x ] ==> x scf P)⺠y ]==> semidecisive scf A Is C x y" unfolding semidecisive_def by simp
lemma semidecisive_coalitionD[dest]: "semidecisive scf A Is C x y ==> C â Is" unfolding semidecisive_def by simp
lemma sd_refl: "[ C â Is; C â {} ]==> semidecisive scf A Is C x x" unfolding semidecisive_def strict_pref_def by blast
textâ¹A coalition @{term "C"} is \emph{decisive} for @{term "x"} over
{term "y"} if, whenever the coalition prefers @{term "x"} to @{term "y"},
coalition prevails.âº
definition decisive :: "('a, 'i) SCF ==> 'a set ==> 'i set ==> 'i set ==> 'a ==> 'a==> bool"where "decisive scf A Is C x y â¡ C â Is â§ (âP. profile A Is P â§ (âi â C. x P i)⺠y) â¶ x scf P)⺠y)"
lemma decisiveI[intro]: "[ C â Is; â§P. [ profile A Is P; â§i. i â C ==> x P i)⺠y ]==> x scf P)⺠y ] ==> decisive scf A Is C x y" unfolding decisive_def by simp
lemma d_imp_sd: "decisive scf A Is C x y ==> semidecisive scf A Is C x y" unfolding decisive_def by (rule semidecisiveI, blast+)
lemma decisive_coalitionD[dest]: "decisive scf A Is C x y ==> C â Is" unfolding decisive_def by simp
textâ¹Anyone is trivially decisive for @{term "x"} against @{term "x"}.âº
lemma d_refl: "[ C â Is; C â {} ]==> decisive scf A Is C x x" unfolding decisive_def strict_pref_def by simp
textâ¹Agent @{term "j"} is a \emph{dictator} if her preferences always
. This is the same as saying that she is decisive for all @{term "x"}
@{term "y"}.âº
definition dictator :: "('a, 'i) SCF ==> 'a set ==> 'i set ==> 'i ==> bool"where "dictator scf A Is j â¡ j â Is â§ (âx â A. ây â A. decisive scf A Is {j} x y)"
lemma dictatorI[intro]: "[ j â Is; â§x y. [ x â A; y â A ]==> decisive scf A Is {j} x y ]==> dictator scf A Is j" unfolding dictator_def by simp
lemma dictator_individual[dest]: "dictator scf A Is j ==> j â Is" unfolding dictator_def by simp
(*<*) end (*>*)
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.33Bemerkung:
(vorverarbeitet am 2026-06-13)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.