@[simp]
@[simp]
@[simp]
@[instance_reducible]
Equations
@[instance_reducible]
Equations
@[instance_reducible]
Equations
- AP.Alt₁.instInhabitedBoard = { default := AP.Alt₁.board₀ }
@[instance_reducible]
Equations
- AP.Alt₁.instInhabitedState = { default := AP.Alt₁.state₀ }
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
AP.Alt₁.Game.s_playAMoveAt'_eq_iff
{pw : ℕ}
{g₁ g₂ : Game pw}
{h₁ : g₁.s.act}
{h₂ : AHasValidMove pw g₁.s.board}
{h₃ : g₂.s.act}
{h₄ : AHasValidMove pw g₂.s.board}
:
@[simp]
theorem
AP.Alt₁.Game.a_playAMoveAt'
{pw : ℕ}
{g : Game pw}
{a : A pw}
{h₁ : g.s.act}
{h₂ : AHasValidMove pw g.s.board}
:
@[simp]
theorem
AP.Alt₁.Game.d_playAMoveAt'
{pw : ℕ}
{g : Game pw}
{a : A pw}
{h₁ : g.s.act}
{h₂ : AHasValidMove pw g.s.board}
:
@[simp]
@[simp]
theorem
AP.Alt₁.Game.s_playAMoveAt_eq_iff_of
{pw : ℕ}
{g₁ g₂ : Game pw}
(h₁ : g₁.s.act ↔ g₂.s.act)
(h₂ : AHasValidMove pw g₁.s.board ↔ AHasValidMove pw g₂.s.board)
(h₁✝ : g₁.s.act)
(h₂✝ : AHasValidMove pw g₁.s.board)
(h₃ : g₂.s.act)
(h₄ : AHasValidMove pw g₂.s.board)
:
(playAMoveAt g₁).s = (playAMoveAt g₂).s ↔ applyAMove g₁.s (g₁.a.f g₁.s h₁✝ h₂✝).m = applyAMove g₂.s (g₂.a.f g₂.s h₃ h₄).m
theorem
AP.Alt₁.Game.playAMoveAt_eq_of_pos
{pw : ℕ}
{g : Game pw}
(h₁ : g.s.act)
(h₂ : AHasValidMove pw g.s.board)
:
theorem
AP.Alt₁.Game.aHasValidMove_of_act_playAMoveAt
{pw : ℕ}
{g : Game pw}
(h : (playAMoveAt g).act)
:
AHasValidMove pw g.s.board
theorem
AP.Alt₁.Game.s_playAMoveAt_eq_iff_of_act_playAMoveAt
{pw : ℕ}
{g₁ g₂ : Game pw}
(h₁ : (playAMoveAt g₁).act)
(h₂ : (playAMoveAt g₂).act)
:
(playAMoveAt g₁).s = (playAMoveAt g₂).s ↔ applyAMove g₁.s (g₁.a.f g₁.s ⋯ ⋯).m = applyAMove g₂.s (g₂.a.f g₂.s ⋯ ⋯).m
@[simp]
theorem
AP.Alt₁.Game.act_playAMoveAt'
{pw : ℕ}
{g : Game pw}
{a : A pw}
{h₁ : g.s.act}
{h₂ : AHasValidMove pw g.s.board}
:
@[simp]
instance
AP.Alt₁.wf_playAMoveAt
{pw : ℕ}
{g : Game pw}
[hs : AState pw g.s]
:
State.WF pw (playAMoveAt g).s
theorem
AP.Alt₁.dState_playAMoveAt_of_act
{pw : ℕ}
{g : Game pw}
[hs : AState pw g.s]
(h : (playAMoveAt g).s.act)
:
DState pw (playAMoveAt g).s
@[simp]
theorem
AP.Alt₁.Game.playAMoveAt'_set_of_eq
{pw : ℕ}
{g : Game pw}
{a a₀ : A pw}
{h₁ : g.s.act}
{h₂ : AHasValidMove pw g.s.board}
:
@[simp]
@[simp]
@[simp]
instance
AP.Alt₁.Game.wf_playAMoveAt
{pw : ℕ}
{g : Game pw}
[hs : AState pw g.s]
:
State.WF pw (playAMoveAt g).s
theorem
AP.Alt₁.State.invariant_of_wf
{pw : ℕ}
{s : State}
{p : State → Prop}
[hs : WF pw s]
(h₁ : p state₀)
(h₄ : ∀ ⦃s : State⦄, WF pw s → p s → p s.finish)
(h₂ : ∀ ⦃s : State⦄ ⦃m : AMove⦄, WF pw s → AMoveValid pw s.board m → p s → p (applyAMove s m))
(h₃ : ∀ ⦃s : State⦄ ⦃m : DMove⦄, WF pw s → DMoveValid s.board m → p s → p (applyDMove s m))
:
p s
theorem
AP.Alt₁.Board.invariant_of_wf
{pw : ℕ}
{s : State}
{p : Board → Prop}
[hs : State.WF pw s]
(h₁ : p board₀)
(h₂ : ∀ ⦃b : Board⦄ ⦃m : AMove⦄, AMoveValid pw b m → p b → p (applyAMoveB b m))
(h₃ : ∀ ⦃b : Board⦄ ⦃m : DMove⦄, DMoveValid b m → p b → p (applyDMoveB b m))
:
p s.board
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]