diff options
| author | Hannes Schulze <haschu0103@outlook.de> | 2025-10-20 19:41:14 +0200 |
|---|---|---|
| committer | Hannes Schulze <haschu0103@outlook.de> | 2025-10-20 19:41:14 +0200 |
| commit | 6dc12564566a00f24c1e03f83aa80b897ca71f56 (patch) | |
| tree | 42c66c9d1c1f6413022e24133ed91d65322e6d20 /Nominal/Helpers | |
| parent | 992aa8fdd40521d2cc7ed4759bce92c912cbeb80 (diff) | |
Prove nonempty induction on finsets
Diffstat (limited to 'Nominal/Helpers')
| -rw-r--r-- | Nominal/Helpers/Finset.lean | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Nominal/Helpers/Finset.lean b/Nominal/Helpers/Finset.lean new file mode 100644 index 0000000..1287c8e --- /dev/null +++ b/Nominal/Helpers/Finset.lean @@ -0,0 +1,23 @@ +import Mathlib.Tactic + +namespace Finset.Nonempty + +theorem induction + {α : Type} {motive : Finset α → Prop} [DecidableEq α] + (single : ∀ (a : α), motive {a}) + (insert : ∀ (a : α) (s : Finset α), a ∉ s → motive s → motive (insert a s)) + : ∀ s, Finset.Nonempty s → motive s := by + intro S + induction' S using Finset.induction + · simp + · expose_names + intro _ + by_cases h : (Finset.Nonempty s) + · apply insert + · assumption + · apply h_1; assumption + · simp at h + rw [h] + apply single + +end Finset.Nonempty |
