diff options
| author | Andreas Grois <andi@grois.info> | 2024-08-09 00:06:24 +0200 | 
|---|---|---|
| committer | Andreas Grois <andi@grois.info> | 2024-08-09 00:06:24 +0200 | 
| commit | 5748097765a2b8b47933551ee144f06451f300fd (patch) | |
| tree | f9f8367e79edb2cf419e9d09b92551dd92a640fa | |
| parent | 904115cbc97c668fc596a6d69eeb7b3db1f4a635 (diff) | |
First branch of heapRemoveLastWithIndexRelationGt
| -rw-r--r-- | BinaryHeap/CompleteTree/AdditionalProofs/HeapRemoveLast.lean | 24 | 
1 files changed, 19 insertions, 5 deletions
diff --git a/BinaryHeap/CompleteTree/AdditionalProofs/HeapRemoveLast.lean b/BinaryHeap/CompleteTree/AdditionalProofs/HeapRemoveLast.lean index 0d87a2c..ad5cb32 100644 --- a/BinaryHeap/CompleteTree/AdditionalProofs/HeapRemoveLast.lean +++ b/BinaryHeap/CompleteTree/AdditionalProofs/HeapRemoveLast.lean @@ -781,15 +781,29 @@ case isFalse h₃ =>        simp at h₅        omega      have h₇ : ↑index - o - 1 < pp + 1 := by -      have := index.isLt +      have : ↑index < o.add (pp + 1) + 1 := index.isLt +      unfold Fin.pred Fin.subNat at h₅        simp at h₅ -      sorry +      generalize index.val = i at h₅ h₆ this ⊢ +      simp at this +      omega +    have h₈ : ⟨↑index - o - 1, h₇⟩ > (Internal.heapRemoveLastWithIndex r).snd.snd := by +      unfold Internal.heapRemoveLastWithIndex +      simp +      rw[Fin.lt_iff_val_lt_val] at h₁ ⊢ +      simp at h₁ ⊢ +      generalize Fin.val (Internal.heapRemoveLastAux (β := λn ↦ α × Fin n) r _ _ _).2.snd = indexInR at h₁ ⊢ +      omega      rw[get_right' _ h₅]      rw[get_right' _ h₆] at hold      rw[←hold] -    have := CompleteTree.AdditionalProofs.heapRemoveLastWithIndexRelationGt r ⟨↑index - o - 1, h₇⟩ -    --have : (⟨↑(index.pred (this)) - o - 1, _⟩ : Fin (pp+1)) = (⟨↑index - o - 1, _⟩ : Fin (pp + 1 + 1)).pred _:= sorry -    sorry +    have h₉ := CompleteTree.AdditionalProofs.heapRemoveLastWithIndexRelationGt r ⟨↑index - o - 1, h₇⟩ h₈ +    unfold Internal.heapRemoveLastWithIndex at h₉ +    unfold Fin.pred Fin.subNat at h₉ +    simp at h₉ +    simp +    have : ↑index - 1 - o - 1 = ↑index - o - 1 - 1 := by omega +    simp[this, h₉]  case isTrue h₃ =>    --removed left    sorry  | 
