人工智能数学验证工具LEAN4【入门介绍6】算法世界-机器人的思维跳步,如何自定义高级证明策略,还有逆否命题的使用

视频点赞过10会继续出下一期哦:人工智能数学验证工具LEAN4【入门介绍6】算法世界-机器人的思维跳步,如何自定义高级证明策略,还有逆否命题的使用_哔哩哔哩_bilibili

import Game.Levels.Algorithm.L07succ_ne_succ

import Game.MyNat.DecidableEq

World "Algorithm"

Level 8

Title "decide"

TheoremTab "Peano"

namespace MyNat

/--

Summary

`decide` will attempt to solve a goal if it can find an algorithm which it

can run to solve it.

Example

A term of type `DecidableEq ℕ` is an algorithm to decide whether two naturals

are equal or different. Hence, once this term is made and made into an `instance`,

the `decide` tactic can use it to solve goals of the form `a = b` or `a ≠ b`.

-/

TacticDoc decide

NewTactic decide

Introduction

"

Implementing the algorithm for equality of naturals, and the proof that it is correct,

looks like this:

```

instance instDecidableEq : DecidableEq ℕ

| 0, 0 => isTrue <| by

show 0 = 0

rfl

| succ m, 0 => isFalse <| by

show succ m ≠ 0

exact succ_ne_zero m

| 0, succ n => isFalse <| by

show 0 ≠ succ n

exact zero_ne_succ n

| succ m, succ n =>

match instDecidableEq m n with

| isTrue (h : m = n) => isTrue <| by

show succ m = succ n

rw [h]

rfl

| isFalse (h : m ≠ n) => isFalse <| by

show succ m ≠ succ n

exact succ_ne_succ m n h

```

This Lean code is a formally verified algorithm for deciding equality

between two naturals. I've typed it in already, behind the scenes.

Because the algorithm is formally verified to be correct, we can

use it in Lean proofs. You can run the algorithm with the `decide` tactic.

"

/-- 20+20=40. -/

Statement : (20 : ℕ) + 20 = 40 := by

decide

Conclusion "You can read more about the `decide` tactic by clicking

on it in the top right."

相关推荐
fie888918 小时前
多IEEE标准系统潮流计算程序(MATLAB实现)
开发语言·matlab
开开心心就好18 小时前
这款PPT计时工具支持远程控制功能
前端·科技·游戏·edge·pdf·全文检索·powerpoint
BangD18 小时前
前端elementUI el-form个别字段增加校验
前端·vue.js·elementui
码云数智-园园18 小时前
告别Flash:HTML5音视频播放器实战指南
前端·音视频·html5
特种加菲猫18 小时前
C++进阶:模板深度解析与继承机制初探
开发语言·c++
Allen_LVyingbo18 小时前
机器伦理层级跃迁的逻辑结构、哲学意涵与形式化建模(上)
开发语言·人工智能·python·数学建模·量子计算
hpoenixf18 小时前
年轻人的第一个复杂 skill:我把 AI Skill 重做了三次
前端·人工智能
web守墓人20 小时前
【linux】Mubuntu v1.0.11更新日志
linux·前端
晔子yy21 小时前
【JAVA探索之路】从头开始讲透、实现单例模式
java·开发语言·单例模式
遇见你...1 天前
TypeScript
前端·javascript·typescript