Theory SDS_Impossibility
section ‹Incompatibility of SD-Efficiency and SD-Strategy-Proofness›
theory SDS_Impossibility
imports
Randomised_Social_Choice.SDS_Automation
Randomised_Social_Choice.Randomised_Social_Choice
begin
subsection ‹Preliminary Definitions›
locale sds_impossibility =
anonymous_sds agents alts sds +
neutral_sds agents alts sds +
sd_efficient_sds agents alts sds +
strategyproof_sds agents alts sds
for agents :: "'agent set" and alts :: "'alt set" and sds +
assumes agents_ge_4: "card agents ≥ 4"
and alts_ge_4: "card alts ≥ 4"
locale sds_impossibility_4_4 = sds_impossibility agents alts sds
for agents :: "'agent set" and alts :: "'alt set" and sds +
fixes A1 A2 A3 A4 :: 'agent and a b c d :: 'alt
assumes distinct_agents: "distinct [A1, A2, A3, A4]"
and distinct_alts: "distinct [a, b, c, d]"
and agents: "agents = {A1, A2, A3, A4}"
and alts: "alts = {a, b, c, d}"
begin
lemma an_sds: "an_sds agents alts sds" by unfold_locales
lemma ex_post_efficient_sds: "ex_post_efficient_sds agents alts sds" by unfold_locales
lemma sd_efficient_sds: "sd_efficient_sds agents alts sds" by unfold_locales
lemma strategyproof_an_sds: "strategyproof_an_sds agents alts sds" by unfold_locales
lemma distinct_agents' [simp]:
"A1 ≠ A2" "A1 ≠ A3" "A1 ≠ A4" "A2 ≠ A1" "A2 ≠ A3" "A2 ≠ A4"
"A3 ≠ A1" "A3 ≠ A2" "A3 ≠ A4" "A4 ≠ A1" "A4 ≠ A2" "A4 ≠ A3"
using distinct_agents by auto
lemma distinct_alts' [simp]:
"a ≠ b" "a ≠ c" "a ≠ d" "b ≠ a" "b ≠ c" "b ≠ d"
"c ≠ a" "c ≠ b" "c ≠ d" "d ≠ a" "d ≠ b" "d ≠ c"
using distinct_alts by auto
lemma card_agents [simp]: "card agents = 4" and card_alts [simp]: "card alts = 4"
using distinct_agents distinct_alts by (simp_all add: agents alts)
lemma in_agents [simp]: "A1 ∈ agents" "A2 ∈ agents" "A3 ∈ agents" "A4 ∈ agents"
by (simp_all add: agents)
lemma in_alts [simp]: "a ∈ alts" "b ∈ alts" "c ∈ alts" "d ∈ alts"
by (simp_all add: alts)
lemma agent_iff: "x ∈ agents ⟷ x ∈ {A1, A2, A3, A4}"
"(∀x∈agents. P x) ⟷ P A1 ∧ P A2 ∧ P A3 ∧ P A4"
"(∃x∈agents. P x) ⟷ P A1 ∨ P A2 ∨ P A3 ∨ P A4"
by (auto simp add: agents)
lemma alt_iff: "x ∈ alts ⟷ x ∈ {a,b,c,d}"
"(∀x∈alts. P x) ⟷ P a ∧ P b ∧ P c ∧ P d"
"(∃x∈alts. P x) ⟷ P a ∨ P b ∨ P c ∨ P d"
by (auto simp add: alts)
subsection ‹Definition of Preference Profiles and Fact Gathering›