38 lines
1.6 KiB
C++
38 lines
1.6 KiB
C++
/*
|
|
Copyright (c) 2013 Microsoft Corporation. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
|
|
Author: Leonardo de Moura
|
|
*/
|
|
#include "util/test.h"
|
|
#include "kernel/abstract.h"
|
|
#include "library/expr_lt.h"
|
|
using namespace lean;
|
|
|
|
static void lt(expr const & e1, expr const & e2, bool expected) {
|
|
lean_assert(is_lt(e1, e2, false) == expected);
|
|
lean_assert(is_lt(e1, e2, false) == !(e1 == e2 || (is_lt(e2, e1, false))));
|
|
}
|
|
|
|
static void tst1() {
|
|
lt(Var(0), Var(0), false);
|
|
lt(Var(0), Var(1), true);
|
|
lt(Const("a"), Const("b"), true);
|
|
lt(Const("a"), Const("a"), false);
|
|
lt(Var(1), Const("a"), true);
|
|
lt(mk_app(Const("f"), Var(0)), mk_app(Const("f"), Var(0), Const("a")), true);
|
|
lt(mk_app(Const("f"), Var(0), Const("a"), Const("b")), mk_app(Const("f"), Var(0), Const("a")), false);
|
|
lt(mk_app(Const("f"), Var(0), Const("a")), mk_app(Const("g"), Var(0), Const("a")), true);
|
|
lt(mk_app(Const("f"), Var(0), Const("a")), mk_app(Const("f"), Var(1), Const("a")), true);
|
|
lt(mk_app(Const("f"), Var(0), Const("a")), mk_app(Const("f"), Var(0), Const("b")), true);
|
|
lt(mk_app(Const("f"), Var(0), Const("a")), mk_app(Const("f"), Var(0), Const("a")), false);
|
|
lt(mk_app(Const("g"), Var(0), Const("a")), mk_app(Const("f"), Var(0), Const("a")), false);
|
|
lt(mk_app(Const("f"), Var(1), Const("a")), mk_app(Const("f"), Var(0), Const("a")), false);
|
|
lt(mk_app(Const("f"), Var(0), Const("b")), mk_app(Const("f"), Var(0), Const("a")), false);
|
|
}
|
|
|
|
int main() {
|
|
save_stack_info();
|
|
tst1();
|
|
return has_violations() ? 1 : 0;
|
|
}
|