@[reducible, inline]
abbrev
dac_game
{ℍ α : Type}
[BEq ℍ]
[LawfulBEq ℍ]
[Hash α ℍ]
[HashMagma ℍ]
(da : CompTree ℍ Unit ℍ)
(revealer : ABTree (Option α) (Option (ℍ × ℍ)))
(chooser : ABTree Unit (ℍ × ℍ × ℍ → Option ChooserMoves))
:
Equations
- dac_game da revealer chooser = treeCompArbGame cond_hash_elem (fun (x : Unit) => cond_hash) da revealer chooser
Instances For
theorem
winning_prop_hashes
{ℍ α : Type}
[DecidableEq ℍ]
[Hash α ℍ]
[HashMagma ℍ]
(da : CompTree ℍ Unit ℍ)
(revealer : ABTree (Option α) (Option (ℍ × ℍ)))
(good_revealer : reveler_winning_condition cond_hash_elem (fun (x : Unit) => cond_hash) da revealer)
(chooser : ABTree Unit (ℍ × ℍ × ℍ → Option ChooserMoves))
:
theorem
winning_gen_chooser
{ℍ α : Type}
[hash : Hash α ℍ]
[HashMagma ℍ]
[DecidableEq ℍ]
(pub_data : ABTree ℍ Unit)
(revealer : ABTree (Option α) (Option (ℍ × ℍ)))
(rev_res : ℍ)
(chooser : ABTree (Option α) (Option (ℍ × ℍ)))
(ch_res : ℍ)
(good_chooser :
winning_condition_player (fun (c : ℍ) (a : α) (h : ℍ) => cond_hash_elem c a h = true)
(fun (x : Unit) (x : ℍ × ℍ) (res : ℍ) =>
match x with
| (l, r) => cond_hash res l r = true)
(fun (x : ℍ) => id) { data := pub_data, res := ch_res } chooser)
(hneq : ¬rev_res = ch_res)
:
treeCompArbGame cond_hash_elem (fun (x : Unit) => cond_hash) { data := pub_data, res := rev_res } revealer
(ABTree.map (fun (x : Option α) => ()) gen_chooser_opt chooser) = Player.Chooser