2 个版本
0.1.0-alpha.2 | 2024年7月1日 |
---|---|
0.1.0-alpha.1 | 2024年6月28日 |
#615 in 数学
17KB
514 行
命题逻辑
此包提供使用符号和连接词(如和、或、蕴含)定义和操作逻辑命题的工具。它简化了逻辑表达式的创建和它们在定义的逻辑环境中的真值评估。
适用于教育目的、人工智能项目和任何需要形式逻辑推理的应用。
示例
use propositional::prelude::*;
let rain = symbol!("it's raining");
let cloud = symbol!("it's cloudy");
let world = and!(
implies!(rain, cloud),
rain
);
println!("It is cloudy? {:?}", check(&world, &cloud));
//-> It is cloudy? Some(true)
来源: wikipedia.org
use propositional::prelude::*;
let rain = symbol!("It is raining.");
let hagrid = symbol!("Harry visited Hagrid.");
let dumbledore = symbol!("Harry visited Dumbledore.");
let knowledge = and!(
implies!(not!(rain), hagrid),
or!(hagrid, dumbledore),
not!(and!(hagrid, dumbledore)),
dumbledore
);
println!("It is raining? {:?}", check(&knowledge, &rain));
//-> It is raining? Some(true)
来源: CS50
致谢
基于:CS50 的使用 Python 的人工智能入门。