Zulip Chat Archive

Stream: Program verification

Topic: theorem on ranges


Wax-byte (Aug 24 2024 at 13:10):

Hi I am rather new to using Lean. Just wondering, why is below not automatically proven by aesop?

theorem sub_Range {x e: } {h1: x  [:e]}: x  [:e+1] := by aesop

Wax-byte (Aug 24 2024 at 13:50):

and here in the playground

Daniel Weber (Aug 24 2024 at 16:52):

There seems to be a lot of missing API for docs#Std.Range which causes this

Wax-byte (Aug 24 2024 at 17:22):

Thanks for the clarification. Trying to do more of the proof by hand. Good for learning.

Wax-byte (Aug 24 2024 at 17:45):

Managed to get the proof working, but unsure why I needed tauto instead of aesop at the end

theorem sub_Range {x e: Nat} {h: x  [:e]}: x  [:e+1] := by
  apply And.intro
  . aesop
  . simp
    . cases h
      tauto

Kevin Buzzard (Aug 24 2024 at 20:33):

The main application of tauto itself does nothing (in your case) but tauto calls solve_by_elim after running, which solves the goal.

Bulhwi Cha (Aug 24 2024 at 23:40):

Daniel Weber said:

There seems to be a lot of missing API for docs#Std.Range which causes this

Perhaps it'll be added to Lean's standard library in the future.

Kim Morrison said:

There will be more news coming about this later, and when a design document is available we will post it, but it is possible there will be a radical overhaul of the String library (indeed, even the definition of String), so I would hesitate to encourage significant work on String at the moment as it may become obsolete (even to the point of not being able to meaningfully migrate results).

Bulhwi Cha (Aug 27 2024 at 23:38):

Kim Morrison said:

Unfortunately overhauling String by the FRO has fallen back to medium priority, and in particular no one is actively working on it now.

I'm afraid Lean's still not ready to provide enough APIs for strings.


Last updated: May 02 2025 at 03:31 UTC