-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
import Mathlib
variable {n} (I : (i : Fin n) → (j : Fin n) → (j < i) → Bool)
def f (i j : Fin n) :=
if h : i = j then
false
else if h : i < j then
I j i h
else
I i j (by grind)
-- def f (i j : Fin n) := match h : compare i j with
-- | .lt => I j i <| compare_lt_iff_lt.mp h
-- | .eq => false
-- | .gt => !(I i j <| compare_gt_iff_gt.mp h)
def w (i : Fin n) := Finset.card {j | f I i j}
example (hI : ∀ i j k, (h₁ : j < i) → (h₂ : k < j) → I i j h₁ → I j k h₂ → I i k (Fin.lt_trans h₂ h₁))
(hnI : ∀ i j k, (h₁ : j < i) → (h₂ : k < j) → !(I i j h₁) → !(I j k h₂) → !(I i k <| Fin.lt_trans h₂ h₁))
(hii' : i' < i)
: w I i ≠ w I i' := by
unfold w
by_cases h₁ : f I i i'
· have blah j : f I i j ≤ f I i' j := by
have cases : j < i' ∨ j = i' ∨ (i' < j ∧ j < i) ∨ j = i ∨ i < j := by
grind
obtain h₂|h₂|h₂|h₂|h₂ := cases
· unfold f
-- grind
· unfold f at h₁ ⊢
simp [h₂, show i ≠ i' by grind, show ¬ i < i' by grind] at h₁ ⊢
· sorry
· unfold f at h₁ ⊢
simp [h₂, hii', show i ≠ i' by grind] at h₁ ⊢
grind
· sorry
sorry
· sorry
def blah (x : α) := x