模块
Mathlib.Vector.Basic
npa-mathlib
包
2
模块
63
定理
750
声明
1016
非可信 sidecar
源文本和展示 overlay 属于展示元数据。可信证据是签名证书和 checker 结果。
定理
12
定义
4
归纳类型
1
公理
0
声明
vec_zero
Vec
vec_add
forall (u : Vec), forall (v : Vec), Vec
vec_neg
forall (v : Vec), Vec
vec_sub
forall (u : Vec), forall (v : Vec), Vec
vec_add_assoc
forall (u : Vec), forall (v : Vec), forall (w : Vec), @Eq.{1} Vec (vec_add (vec_add u v) w) (vec_add u (vec_add v w))
vec_add_comm
forall (u : Vec), forall (v : Vec), @Eq.{1} Vec (vec_add u v) (vec_add v u)
vec_zero_add
forall (v : Vec), @Eq.{1} Vec (vec_add vec_zero v) v
vec_add_zero
forall (v : Vec), @Eq.{1} Vec (vec_add v vec_zero) v
vec_neg_add_cancel
forall (v : Vec), @Eq.{1} Vec (vec_add (vec_neg v) v) vec_zero
vec_add_neg_cancel
forall (v : Vec), @Eq.{1} Vec (vec_add v (vec_neg v)) vec_zero
vec_sub_def
forall (u : Vec), forall (v : Vec), @Eq.{1} Vec (vec_sub u v) (vec_add u (vec_neg v))
vec_sub_eq_add_neg
forall (u : Vec), forall (v : Vec), @Eq.{1} Vec (vec_sub u v) (vec_add u (vec_neg v))
vec_sub_self
forall (v : Vec), @Eq.{1} Vec (vec_sub v v) vec_zero
vec_sub_zero
forall (v : Vec), @Eq.{1} Vec (vec_sub v vec_zero) v
vec_add_left_cancel
forall (u : Vec), forall (v : Vec), forall (w : Vec), forall (h : @Eq.{1} Vec (vec_add u v) (vec_add u w)), @Eq.{1} Vec v w
sub_sub_sub_cancel
forall (u : Vec), forall (v : Vec), forall (w : Vec), @Eq.{1} Vec (vec_sub (vec_sub u w) (vec_sub v w)) (vec_sub u v)
Vec
Type
哈希
- source
- sha256:19db7e04cd08724e4f8e393786e86caac000a62a408b5ac25b9024e741f262a0
- certificateFile
- sha256:5b5f20f683c498127c652a98d56b2838d098c5b3aa3adaa54dd4675748fdfbab
- export
- sha256:3ba8f7b514c7f041a1ac86bf1800a21186255bac9ce31e2fea0b7d9c91d4c938
- axiomReport
- sha256:55932adb6d068a32ac76b43afee2b808d61b89bb36b85b1805fe77d82a1028b3
- certificate
- sha256:fb89a6e1e47b9622b5e77b7dd8d12acb04073bba76e1ef7cffe76130f981f423
源文本
import Std.Logic.Eq
inductive Vec :
Type where
| unit : Vec
def vec_zero :
Vec :=
Vec.unit
def vec_add :
forall (u : Vec), forall (v : Vec), Vec :=
fun u => fun v => Vec.unit
def vec_neg :
forall (v : Vec), Vec :=
fun v => Vec.unit
def vec_sub :
forall (u : Vec), forall (v : Vec), Vec :=
fun u => fun v => vec_add u (vec_neg v)
theorem vec_add_assoc :
forall (u : Vec), forall (v : Vec), forall (w : Vec), @Eq.{1} Vec (vec_add (vec_add u v) w) (vec_add u (vec_add v w)) :=
fun u => fun v => fun w => @Eq.refl.{1} Vec (vec_add (vec_add u v) w)
theorem vec_add_comm :
forall (u : Vec), forall (v : Vec), @Eq.{1} Vec (vec_add u v) (vec_add v u) :=
fun u => fun v => @Eq.refl.{1} Vec (vec_add u v)
theorem vec_zero_add :
forall (v : Vec), @Eq.{1} Vec (vec_add vec_zero v) v :=
fun v => @Vec.rec.{0} (fun (x : Vec) => @Eq.{1} Vec Vec.unit x) (@Eq.refl.{1} Vec Vec.unit) v
theorem vec_add_zero :
forall (v : Vec), @Eq.{1} Vec (vec_add v vec_zero) v :=
fun v => @Vec.rec.{0} (fun (x : Vec) => @Eq.{1} Vec Vec.unit x) (@Eq.refl.{1} Vec Vec.unit) v
theorem vec_neg_add_cancel :
forall (v : Vec), @Eq.{1} Vec (vec_add (vec_neg v) v) vec_zero :=
fun v => @Eq.refl.{1} Vec (vec_add (vec_neg v) v)
theorem vec_add_neg_cancel :
forall (v : Vec), @Eq.{1} Vec (vec_add v (vec_neg v)) vec_zero :=
fun v => @Eq.refl.{1} Vec (vec_add v (vec_neg v))
theorem vec_sub_def :
forall (u : Vec), forall (v : Vec), @Eq.{1} Vec (vec_sub u v) (vec_add u (vec_neg v)) :=
fun u => fun v => @Eq.refl.{1} Vec (vec_sub u v)
theorem vec_sub_eq_add_neg :
forall (u : Vec), forall (v : Vec), @Eq.{1} Vec (vec_sub u v) (vec_add u (vec_neg v)) :=
fun u => fun v => @Eq.refl.{1} Vec (vec_sub u v)
theorem vec_sub_self :
forall (v : Vec), @Eq.{1} Vec (vec_sub v v) vec_zero :=
fun v => @Eq.refl.{1} Vec (vec_sub v v)
theorem vec_sub_zero :
forall (v : Vec), @Eq.{1} Vec (vec_sub v vec_zero) v :=
fun v => @Vec.rec.{0} (fun (x : Vec) => @Eq.{1} Vec Vec.unit x) (@Eq.refl.{1} Vec Vec.unit) v
theorem vec_add_left_cancel :
forall (u : Vec), forall (v : Vec), forall (w : Vec), forall (h : @Eq.{1} Vec (vec_add u v) (vec_add u w)), @Eq.{1} Vec v w :=
fun u => fun v => fun w => fun h => @Vec.rec.{0} (fun (x : Vec) => @Eq.{1} Vec x w) (@Vec.rec.{0} (fun (y : Vec) => @Eq.{1} Vec Vec.unit y) (@Eq.refl.{1} Vec Vec.unit) w) v
theorem sub_sub_sub_cancel :
forall (u : Vec), forall (v : Vec), forall (w : Vec), @Eq.{1} Vec (vec_sub (vec_sub u w) (vec_sub v w)) (vec_sub u v) :=
fun u => fun v => fun w => @Eq.refl.{1} Vec (vec_sub (vec_sub u w) (vec_sub v w))