Zulip Chat Archive

Stream: mathlib4

Topic: Restrict the conclusion of the current proposition about n-1


yh (Apr 30 2024 at 14:02):

I have a proposition about the natural number n, how can I restrict the conclusion of the current proposition about n-1:

example (f :   ) (hf :  i, f i > 0) (n : ) :  g :   ,  i, g i > 0 := by sorry

Where f , hf and goal are simplified. Assuming that for each n, it gets g_n. How can I add " if n > 0, ∀ i ≤ n - 1, g_n (i) = g_(n-1) (i)" to the goal

Kevin Buzzard (Apr 30 2024 at 14:18):

Right now your example can be solved with

import Mathlib.Tactic

example (f :   ) (hf :  i, f i > 0) (n : ) :  g :   ,  i, g i > 0 := by
  use fun x  37
  intro i
  norm_num

Can you write a better #mwe or explain more what you mean by adding something? Why can't you just add it? (exists g, (forall i, g i > 0) \and (the thing you want))

yh (Apr 30 2024 at 14:35):

I need such a goal, but I can't use the theorem in itself

theorem tmp (f :   ) (hf :  i, f i > 0) (n : ) :  g :   ,  i, g i > 0 

    let g' := (tmp f hf (n - 1)).choose

    (if n > 0 then ( i  n - 1, g' i = g i)  else True) := by

  sorry

A. (May 01 2024 at 01:11):

Well I'm not sure this is entirely sane, but it does prove that ... something ... is possible

import Mathlib.Data.Real.Basic

inductive P :   (  )  Prop
  | c0 {g :   } : ( i, 0 < g i)  P 0 g
  | cn {n : } {g g' :   } : P n g'  ( i, 0 < g i)  ( i  n, g' i = g i)  P (n + 1) g

theorem tmp {f :   } (hf :  i, 0 < f i) (n : ) :  g :   , P n g :=
  match n with
  | 0 => f, .c0 hf
  | m + 1 => f, .cn (tmp hf m).choose_spec hf sorry

Last updated: May 02 2025 at 03:31 UTC