/-
Copyright 2026 The Formal Conjectures Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-/
import FormalConjecturesUtilLeast positive multiple of $n$ in base 10 with digits 0 and 1
Least positive multiple of $n$ that when written in base 10 uses only 0's and 1's.
References:
namespace OeisA4290Least positive multiple of $n$ using only 0's and 1's in base 10.
noncomputable def a (n : ℕ) : ℕ :=
sInf { m : ℕ | 0 < m ∧ n ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1 }All goals completed! 🐙
@[category test, AMS 11]
theorem a_1 : a 1 = 1 := by ⊢ a 1 = 1
dsimp [a] ⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1
have h_least : IsLeast { m : ℕ | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1 } 1 := by ⊢ a 1 = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1
refine ⟨⟨by ⊢ 0 < 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1 decide All goals completed! 🐙 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1, dvd_rfl, ?_⟩, fun m hm ↦ hm.1⟩
intro d hd d:ℕhd:d ∈ Nat.digits 10 1⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1
rw [Nat.digits_def' (by d:ℕhd:d ∈ Nat.digits 10 1⊢ 1 < 10 d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1 decide All goals completed! 🐙 d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1) (by d:ℕhd:d ∈ Nat.digits 10 1⊢ 0 < 1 d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1 decide All goals completed! 🐙 d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1), show (1 / 10 : ℕ) = 0 by ⊢ a 1 = 1 d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1 rfl All goals completed! 🐙 d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1,
Nat.digits_zero d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1] at hd d:ℕhd:d ∈ [1 % 10]⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1
simp only [show 1 % 10 = 1 by rfl, List.mem_singleton] at hd d:ℕhd:d = 1⊢ d = 0 ∨ d = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1
subst hd ⊢ 1 = 0 ∨ 1 = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1
exact Or.inr rfl h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1 h_least:IsLeast {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} 1⊢ sInf {m | 0 < m ∧ 1 ∣ m ∧ ∀ d ∈ Nat.digits 10 m, d = 0 ∨ d = 1} = 1
exact h_least.csInf_eq All goals completed! 🐙