Coq学习笔记

本文介绍了Coq证明助手的基础用法,包括注释、逻辑命题、函数定义、模式匹配、列表操作以及如何定义新的类型。通过示例展示了Check、Locate、Eval等命令的使用,以及如何定义和计算递归函数,如求和、插入和排序列表。此外,还提到了Inductive关键字来创建新的类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 注释

使用(* COMMENTS HERE *)进行注释

  1. 分隔符

每个Coq命令都要加上.表示结束.

 

逻辑命题(Prop),数学集合(Set)和 抽象类型(Type)

 

  • Check 检测表达式是否合理/以及表达式的类型

Coq < Check True.

True : Prop

 

Coq < Check ((3=5)/\True).

3 = 5 /\ True : Prop

 

Coq < Check (fun x:nat => x = 3).

fun x : nat => x = 3 : nat -> Prop

 

Coq < Check (forall x:nat, x < 3 \/ (exists y:nat, x = y + 3)).

forall x : nat, x < 3 \/ (exists y : nat, x = y + 3) : Prop

 

Coq < Check (let f := fun x => (x * 3,x) in f 3).

let f := fun x : nat => (x * 3, x) in f 3 : nat * nat

 

  • Locate 找到隐藏在符号[ *,>,<,-> .... ]后面的函数

Coq < Locate "_ * _".

Notation

"x * y" := Nat.mul x y : nat_scope (default interpretation)

"x * y" := prod x y : type_scope

 

Coq < Locate "_ <= _".

Notation

"n <= m" := le n m : nat_scope (default interpretation)

 

Coq < Locate "_ -> _".

Notation

"A -> B" := forall _ : A, B : type_scope (default interpretation)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值