@[instance_reducible]
Equations
- AP.instDecidableEqState.decEq { pw := a, taken := a_1, aPos := a_2, aTurn := a_3, hist := a_4 } { pw := b, taken := b_1, aPos := b_2, aTurn := b_3, hist := b_4 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ if h : a_2 = b_2 then h ▸ if h : a_3 = b_3 then h ▸ if h : a_4 = b_4 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯ else isFalse ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
- s.move p = if s.aTurn = true then do let s' ← s.aMove p (fun (s' : AP.State) => pure { pw := s'.pw, taken := s'.taken, aPos := s'.aPos, aTurn := decide ¬s.aTurn = true, hist := p :: s.hist }) s' else do let s' ← s.dMove p (fun (s' : AP.State) => pure { pw := s'.pw, taken := s'.taken, aPos := s'.aPos, aTurn := decide ¬s.aTurn = true, hist := p :: s.hist }) s'