陶哲轩也在用的数学证明验证工具lean,来一探究竟

陶哲轩也在用的数学证明验证工具lean,来一探究竟

还有视频讲解哦:https://www.bilibili.com/medialist/detail/ml93640165?type=1&spm_id_from=333.999.0.0

import Mathlib.Data.Real.Sqrt

-- 十八世纪六十年代 2016 2022年11月30日 lean4

-- 斐波拉契数列通项公式

open Real -- 把前缀省略

-- #check (sqrt 2:ℝ )

-- 数学归纳法:二步归纳

namespace Nat

open Lean Elab Term Meta

def two_step_induction -- 名称

{P : ℕ → Sort*} --条件若干

(zero : P 0)

(one : P 1)

(step : ∀ (k : ℕ), (IH0 : P k) → (IH1 : P (k + 1)) → P (k + 2))

(n : ℕ)

: P n -- 命题具体描述(或理解成 :意思是属于某一个集合)

:= by --证明过程(策略模式:给出大boss,goal,给一些策略作用到它上面,直到他粉碎为止)

induction n using Nat.strongRec with

| ind n ih =>

rcases n with _|n

· exact zero

rcases n with _|n

· exact one

apply step

· apply ih; linarith

· apply ih; linarith

done --命题得证

end Nat

noncomputable section

def fib : ℕ → ℕ --(理解成映射;数列;函数)

| 0 => 0

| 1 => 1 -- 1,1,2,3,5,8,13...

| n + 2 => (fib (n+1)) + (fib n)

#eval (fib 7) --13

def ϕ : ℝ := (1 + sqrt 5)/2

def ψ : ℝ := (1 - sqrt 5)/2

@[simp]

lemma ϕ_sub_ψ_ne_zero : ϕ - ψ ≠ 0

:= by

rw [ϕ]

rw [ψ]

simp only [ne_eq]

simp [sub_eq_zero]

rw [sub_eq_add_neg]

field_simp --通分

simp only [eq_neg_self_iff]

norm_num -- 不等号的简单证明

done

@[simp]

lemma ϕ_sq : ϕ ^ 2 = ϕ + 1 := by

simp [ϕ]

simp [add_sq]

field_simp

ring -- 等号的简单证明

done

@[simp]

lemma ψ_sq : ψ ^ 2 = ψ + 1 := by

simp [ψ]

simp [sub_sq]

field_simp

ring

done

lemma coe_fib_eq (n : ℕ)

: ((fib n) : ℝ) = (ϕ ^ n - ψ ^ n) / (ϕ - ψ)

:= by

induction n using Nat.two_step_induction

case zero =>

simp only [pow_zero]

simp only [sub_self]

simp only [zero_div]

simp [fib]

done

-- simp only [Nat.cast_eq_zero]

case one =>

simp only [pow_one]

simp [fib]

done

case step k ih1 ih2 =>

simp [fib]

rw [ih1]

rw [ih2]

field_simp

simp [pow_add]

set a₁ := ψ ^ k

set a₂ := ϕ ^ k

rw [add_sub,mul_add,mul_add]

rw[← sub_sub]

repeat rw [mul_one]

rw [sub_left_inj]

have aaa1 := (sub_add_eq_add_sub (a₂ * ϕ) (a₁ * ψ) a₂)

-- exact (sub_add_eq_add_sub (a₂ * ϕ) (a₁ * ψ) a₂)

exact aaa1

done

-- 基于有限的几个公理,可以推出高深的数学。

end

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值