-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
由于C++并不会检查requires是否在任何条件下都满足,而只会检查对于某个特定的实例化是否满足,C++可能并不能用来做自动定理证明。
例如,甚至可以证明任何自然数都是0:
template <Nat::isNat N>
struct EveryNumberIsZero : Prop {
constexpr Eq<N, Nat::Zero>
operator() () {
using namespace Nat;
using namespace Prover;
return rfl<Nat::Zero>();
}
};
int main() {
auto proof = EveryNumberIsZero<Zero>()();
return 0;
}
表面上看,EveryNumberIsZero确实能对任何一个自然数实例化一个Eq<N, Nat::Zero>
Metadata
Metadata
Assignees
Labels
No labels