lean语言证明|x * y| = |x| * |y| :=
时间: 2023-08-21 20:10:44 浏览: 235
theorem_proving_in_lean:精益定理证明
在Lean语言中,要证明一个等式,可以使用"theorem"或"lemma"关键字。下面是一个证明|x * y| = |x| * |y|的示例:
```lean
import data.real.basic
theorem abs_mul_eq_mul_abs (x y : ℝ) : |x * y| = |x| * |y| :=
begin
by_cases hx : x ≥ 0, -- 假设 x ≥ 0
{ -- 在这种情况下,使用非负性质证明
by_cases hy : y ≥ 0, -- 假设 y ≥ 0
{ -- 在这种情况下,使用非负性质证明
rw \[abs_of_nonneg hx, abs_of_nonneg hy, abs_of_nonneg (mul_nonneg hx hy)\],
},
{ -- 在这种情况下,使用非负性质和乘法的性质证明
rw \[abs_of_nonneg hx, abs_of_neg (le_of_not_ge hy), abs_of_neg (mul_nonpos_of_nonneg_of_nonpos hx (le_of_not_ge hy))\],
},
},
{ -- 在这种情况下,使用非负性质和乘法的性质证明
by_cases hy : y ≥ 0, -- 假设 y ≥ 0
{
rw \[abs_of_neg (le_of_not_ge hx), abs_of_nonneg hy, abs_of_neg (mul_nonpos_of_nonpos_of_nonneg (le_of_not_ge hx) hy)\],
},
{
rw \[abs_of_neg (le_of_not_ge hx), abs_of_neg (le_of_not_ge hy), abs_of_nonneg (mul_nonneg_of_nonpos_of_nonpos (le_of_not_ge hx) (le_of_not_ge hy))\],
},
},
end
```
在这个证明中,我们使用了假设和证明的结构来处理四种情况:x ≥ 0且y ≥ 0,x ≥ 0且y < 0,x < 0且y ≥ 0,x < 0且y < 0。根据这些情况,我们使用了非负性质和乘法的性质来推导等式的不同部分。最后,我们使用了"rw"命令来重写等式中的一些部分,以达到我们想要的形式。
请注意,这只是一个示例证明,实际的证明可能会根据具体的上下文和定义有所不同。
#### 引用[.reference_title]
- *1* *2* *3* [在精益(Lean)中对定理进行证明(第二章)](https://blog.csdn.net/cmmsdwj/article/details/85230506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文