← Die Gesetze
Invariant ·2026-07-06 00:00 UTC

For every non-negative integer n, the fourth power n^4 leaves remainder 0 or 1 when divided by 8 (never 2 through 7).

Invariant ·analysis of algorithms

Enuntiatio — the claim

For every non-negative integer n, the fourth power n^4 leaves remainder 0 or 1 when divided by 8 (never 2 through 7).

Refuted by Some non-negative integer n with (n^4) % 8 equal to a value other than 0 or 1.

Expressio — the formal statement

import Mathlib

theorem n_pow_four_mod_eight (n : ℕ) : n^4 % 8 = 0 ∨ n^4 % 8 = 1

Demonstratio — the kernel-checked proof

by
  have h : n % 2 = 0 ∨ n % 2 = 1 := by
    have h := Nat.mod_two_eq_zero_or_one n
    exact h
  have h₁ : n ^ 4 % 8 = 0 ∨ n ^ 4 % 8 = 1 := by
    have h₂ : n % 8 = 0 ∨ n % 8 = 1 ∨ n % 8 = 2 ∨ n % 8 = 3 ∨ n % 8 = 4 ∨ n % 8 = 5 ∨ n % 8 = 6 ∨ n % 8 = 7 := by
      omega
    rcases h₂ with (h₂ | h₂ | h₂ | h₂ | h₂ | h₂ | h₂ | h₂)
    · -- Case n % 8 = 0
      have h₃ : n ^ 4 % 8 = 0 := by
        have h₄ : n % 8 = 0 := h₂
        have h₅ : n ^ 4 % 8 = 0 := by
          have : n % 8 = 0 := h₄
          have : n ^ 4 % 8 = 0 := by
            simp [this, pow_succ, Nat.mul_mod, Nat.pow_mod]
          exact this
        exact h₅
      exact Or.inl h₃
    · -- Case n % 8 = 1
      have h₃ : n ^ 4 % 8 = 1 := by
        have h₄ : n % 8 = 1 := h₂
        have h₅ : n ^ 4 % 8 = 1 := by
          have : n % 8 = 1 := h₄
          have : n ^ 4 % 8 = 1 := by
            simp [this, pow_succ, Nat.mul_mod, Nat.pow_mod]
          exact this
        exact h₅
      exact Or.inr h₃
    · -- Case n % 8 = 2
      have h₃ : n ^ 4 % 8 = 0 := by
        have h₄ : n % 8 = 2 := h₂
        have h₅ : n ^ 4 % 8 = 0 := by
          have : n % 8 = 2 := h₄
          have : n ^ 4 % 8 = 0 := by
            simp [this, pow_succ, Nat.mul_mod, Nat.pow_mod]
          exact this
        exact h₅
      exact Or.inl h₃
    · -- Case n % 8 = 3
      have h₃ : n ^ 4 % 8 = 1 := by
        have h₄ : n % 8 = 3 := h₂
        have h₅ : n ^ 4 % 8 = 1 := by
          have : n % 8 = 3 := h₄
          have : n ^ 4 % 8 = 1 := by
            simp [this, pow_succ, Nat.mul_mod, Nat.pow_mod]
          exact this
        exact h₅
      exact Or.inr h₃
    · -- Case n % 8 = 4
      have h₃ : n ^ 4 % 8 = 0 := by
        have h₄ : n % 8 = 4 := h₂
        have h₅ : n ^ 4 % 8 = 0 := by
          have : n % 8 = 4 := h₄
          have : n ^ 4 % 8 = 0 := by
            simp [this, pow_succ, Nat.mul_mod, Nat.pow_mod]
          exact this
        exact h₅
      exact Or.inl h₃
    · -- Case n % 8 = 5
      have h₃ : n ^ 4 % 8 = 1 := by
        have h₄ : n % 8 = 5 := h₂
        have h₅ : n ^ 4 % 8 = 1 := by
          have : n % 8 = 5 := h₄
          have : n ^ 4 % 8 = 1 := by
            simp [this, pow_succ, Nat.mul_mod, Nat.pow_mod]
          exact this
        exact h₅
      exact Or.inr h₃
    · -- Case n % 8 = 6
      have h₃ : n ^ 4 % 8 = 0 := by
        have h₄ : n % 8 = 6 := h₂
        have h₅ : n ^ 4 % 8 = 0 := by
          have : n % 8 = 6 := h₄
          have : n ^ 4 % 8 = 0 := by
            simp [this, pow_succ, Nat.mul_mod, Nat.pow_mod]
          exact this
        exact h₅
      exact Or.inl h₃
    · -- Case n % 8 = 7
      have h₃ : n ^ 4 % 8 = 1 := by
        have h₄ : n % 8 = 7 := h₂
        have h₅ : n ^ 4 % 8 = 1 := by
          have : n % 8 = 7 := h₄
          have : n ^ 4 % 8 = 1 := by
            simp [this, pow_succ, Nat.mul_mod, Nat.pow_mod]
          exact this
        exact h₅
      exact Or.inr h₃
  exact h₁
Q.E.D. kernel verified: true
The I Ching hexagrams read as dyadic numbers