diff --git a/.gitignore b/.gitignore index 52215c20..9cc5d136 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ /nightly /*.terms /*.rules +.env # Scripts scripts/ablation/output/* @@ -34,3 +35,5 @@ out/ # Exceptions !scripts/oopsla21/ablation/submitted-plots/**/*.pdf !scripts/oopsla21/ablation/submitted-plots/**/*.json + +stash \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 889af8c0..999ec169 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,9 @@ authors = ["Max Willsey ", "Chandrakana Nandi (cos (/ PI 4)) +(sin (/ PI 2)) <=> (cos 0) +(cos 0) <=> (tan (/ PI 4)) +(cos (* PI 2)) <=> (cos 0) +(cos (/ PI 2)) <=> (tan PI) +(tan (* PI 2)) <=> (tan PI) +(sin PI) <=> (sin (* PI 2)) +(sin 0) <=> (sin PI) +(tan 0) <=> (tan PI) +0 <=> (tan PI) +(sin PI) <=> (tan PI) +(~ (cos ?a)) <=> (cos (- PI ?a)) +(sin (- PI ?a)) <=> (sin ?a) +(tan ?a) <=> (tan (+ PI ?a)) +(~ (sin ?a)) <=> (sin (~ ?a)) +(tan (~ ?a)) <=> (~ (tan ?a)) +(cos (~ ?a)) <=> (cos ?a) +(+ (* (sin ?a) (sin ?a)) (* (cos ?a) (cos ?a))) ==> (cos 0) +(- (* (cos ?b) (cos ?b)) (* (cos ?a) (cos ?a))) <=> (- (* (sin ?a) (sin ?a)) (* (sin ?b) (sin ?b))) +(- (* (sin ?b) (sin ?b)) (* (cos ?a) (cos ?a))) <=> (- (* (sin ?a) (sin ?a)) (* (cos ?b) (cos ?b))) +(cos (- (/ PI 2) ?a)) <=> (sin ?a) +(/ (- 1 (cos (* 2 ?a))) 2) <=> (* (sin ?a) (sin ?a)) +(/ (+ 1 (cos (* 2 ?a))) 2) <=> (* (cos ?a) (cos ?a)) +(- ?a ?a) <=> (~ (- ?a ?a)) +(* (sin ?b) (sin ?a)) <=> (/ (- (cos (- ?b ?a)) (cos (+ ?b ?a))) 2) +(* (cos ?b) (cos ?a)) <=> (/ (+ (cos (+ ?b ?a)) (cos (- ?b ?a))) 2) +(+ ?b ?a) ==> (+ ?a ?b) +(- (* (cos ?b) (cos ?a)) (* (sin ?b) (sin ?a))) <=> (cos (+ ?b ?a)) +(sin (+ ?b ?a)) <=> (+ (* (sin ?b) (cos ?a)) (* (sin ?a) (cos ?b))) \ No newline at end of file diff --git a/infra/localnightly.sh b/infra/localnightly.sh new file mode 100644 index 00000000..cf2c2d54 --- /dev/null +++ b/infra/localnightly.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# The primary purpose of this script is to run all the tests and upload +# the results to the nightly-results server. It also generates some HTML +# to display the equiderivability tests in a nicely-formatted way. + +echo "Beginning Ruler nightly script..." + +# exit immediately upon first error +set -e + +# determine physical directory of this script +src="${BASH_SOURCE[0]}" +while [ -L "$src" ]; do + dir="$(cd -P "$(dirname "$src")" && pwd)" + src="$(readlink "$src")" + [[ $src != /* ]] && src="$dir/$src" +done +MYDIR="$(cd -P "$(dirname "$src")" && pwd)" + +RESOURCES_DIR="$MYDIR/nightly-resources" +NIGHTLY_DIR="$MYDIR/../nightly" +OUTPUT_DIR="$NIGHTLY_DIR/output" + +rm -rf "$OUTPUT_DIR" +mkdir -p "$OUTPUT_DIR" +mkdir -p "$OUTPUT_DIR/data" + +cp $RESOURCES_DIR/* "$OUTPUT_DIR" +(echo "var data = "; cat $NIGHTLY_DIR/data/output.json) > $OUTPUT_DIR/data/output.js + +cd $OUTPUT_DIR && python3 -m http.server 8002 \ No newline at end of file diff --git a/infra/nightly-resources/data.js b/infra/nightly-resources/data.js index d6de304d..9a9fc652 100644 --- a/infra/nightly-resources/data.js +++ b/infra/nightly-resources/data.js @@ -56,11 +56,11 @@ function getBaseline(name) { "Enumo LOC": (row) => row.loc, "# Enumo": (row) => row.rules.length, "Time (s)": (row) => row.time, - "Enumo Derives Baseline (LHS / LHSRHS)": (row) => + "X Derives Baseline (LHS / LHSRHS)": (row) => `${getDerivability( row.derivability.enumo_derives_baseline.lhs )} / ${getDerivability(row.derivability.enumo_derives_baseline.lhs_rhs)}`, - "Enumo derives Baseline Time (s)": (row) => { + "X derives Baseline Time (s)": (row) => { if (missingDerivability(row.derivability.enumo_derives_baseline)) { return "-"; } else { @@ -73,11 +73,11 @@ function getBaseline(name) { )}`; } }, - "Baseline Derives Enumo (LHS / LHSRHS)": (row) => + "Baseline Derives X (LHS / LHSRHS)": (row) => `${getDerivability( row.derivability.baseline_derives_enumo.lhs )} / ${getDerivability(row.derivability.baseline_derives_enumo.lhs_rhs)}`, - "Baseline derives Enumo Time (s)": (row) => { + "Baseline derives X Time (s)": (row) => { if (missingDerivability(row.derivability.baseline_derives_enumo)) { return "-"; } else { diff --git a/infra/nightly-resources/index.html b/infra/nightly-resources/index.html index aecc2739..9570d6b7 100644 --- a/infra/nightly-resources/index.html +++ b/infra/nightly-resources/index.html @@ -15,6 +15,9 @@

Nightlies

+
+
+
diff --git a/infra/nightly-resources/index.js b/infra/nightly-resources/index.js index 3db8a2e2..f75099db 100644 --- a/infra/nightly-resources/index.js +++ b/infra/nightly-resources/index.js @@ -2,6 +2,10 @@ // Populates the oopsla, herbie, and halide tables with data from the // global data object function load() { + document.getElementById("enumo_table").innerHTML = ConvertJsonToTable( + getBaseline("enumo") + ); + document.getElementById("baseline_table").innerHTML = ConvertJsonToTable( getBaseline("oopsla") ); @@ -66,16 +70,16 @@ function loadDeriveDetail() { let tableData = [ { - "Enumo->Baseline (derivable)": formatRules( + "X->Baseline (derivable)": formatRules( derivability.enumo_derives_baseline[deriveType]?.can ), - "Enumo->Baseline (not derivable)": formatRules( + "X->Baseline (not derivable)": formatRules( derivability.enumo_derives_baseline[deriveType]?.cannot ), - "Baseline->Enumo (derivable)": formatRules( + "Baseline->X (derivable)": formatRules( derivability.baseline_derives_enumo[deriveType]?.can ), - "Baseline->Enumo (not derivable)": formatRules( + "Baseline->X (not derivable)": formatRules( derivability.baseline_derives_enumo[deriveType]?.cannot ), }, diff --git a/jfp/baseline/A5-A5-derive.json b/jfp/baseline/A5-A5-derive.json new file mode 100644 index 00000000..7bc32708 --- /dev/null +++ b/jfp/baseline/A5-A5-derive.json @@ -0,0 +1,491 @@ +{ + "duration": { + "secs": 0, + "nanos": 103076625 + }, + "num_rules": 480, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [] +} diff --git a/jfp/baseline/A5-Enumo-derive.json b/jfp/baseline/A5-Enumo-derive.json new file mode 100644 index 00000000..264b746c --- /dev/null +++ b/jfp/baseline/A5-Enumo-derive.json @@ -0,0 +1,852 @@ +{ + "duration": { + "secs": 10, + "nanos": 749080417 + }, + "num_rules": 480, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)" + ], + "cannot": [ + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min (* ?a ?a) -1) ==> -1", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ] +} diff --git a/jfp/baseline/A5-Halide-derive.json b/jfp/baseline/A5-Halide-derive.json new file mode 100644 index 00000000..27c6ea16 --- /dev/null +++ b/jfp/baseline/A5-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 7, + "nanos": 791294416 + }, + "num_rules": 480, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(max ?x ?x) ==> ?x", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(min ?x ?x) ==> ?x", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(== ?x 1) ==> ?x", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ 0 ?x) ==> 0", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)" + ] +} diff --git a/jfp/baseline/ENUMO-C-Herbie-derive.json b/jfp/baseline/ENUMO-C-Herbie-derive.json new file mode 100644 index 00000000..c5cfa9fe --- /dev/null +++ b/jfp/baseline/ENUMO-C-Herbie-derive.json @@ -0,0 +1,48 @@ +{ + "duration": { + "secs": 0, + "nanos": 688380375 + }, + "num_rules": 77, + "num_against": 36, + "can": [ + "(sin 0) ==> 0", + "(tan 0) ==> 0" + ], + "cannot": [ + "(* (sin ?a) (sin ?a)) ==> (- 1 (* (cos ?a) (cos ?a)))", + "(* (cos ?a) (cos ?a)) ==> (- 1 (* (sin ?a) (sin ?a)))", + "(sin (+ ?a ?b)) ==> (+ (* (sin ?a) (cos ?b)) (* (cos ?a) (sin ?b)))", + "(cos (+ ?a ?b)) ==> (- (* (cos ?a) (cos ?b)) (* (sin ?a) (sin ?b)))", + "(tan (+ ?a ?b)) ==> (/ (+ (tan ?a) (tan ?b)) (- 1 (* (tan ?a) (tan ?b))))", + "(sin (- ?a ?b)) ==> (- (* (sin ?a) (cos ?b)) (* (cos ?a) (sin ?b)))", + "(cos (- ?a ?b)) ==> (+ (* (cos ?a) (cos ?b)) (* (sin ?a) (sin ?b)))", + "(sin (* 2 ?a)) ==> (* 2 (* (sin ?a) (cos ?a)))", + "(* 2 (* (sin ?a) (cos ?a))) ==> (sin (* 2 ?a))", + "(cos (* 2 ?a)) ==> (- (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a)))", + "(- (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a))) ==> (cos (* 2 ?a))", + "(tan (* 2 ?a)) ==> (/ (* 2 (tan ?a)) (- 1 (* (tan ?a) (tan ?a))))", + "(/ (* 2 (tan ?a)) (- 1 (* (tan ?a) (tan ?a)))) ==> (tan (* 2 ?a))", + "(* (sin ?a) (sin ?a)) ==> (- 1/2 (* 1/2 (cos (* 2 ?a))))", + "(* (cos ?a) (cos ?a)) ==> (+ 1/2 (* 1/2 (cos (* 2 ?a))))", + "(- (sin ?a) (sin ?b)) ==> (* 2 (* (sin (/ (- ?a ?b) 2)) (cos (/ (+ ?a ?b) 2))))", + "(- (cos ?a) (cos ?b)) ==> (* -2 (* (sin (/ (- ?a ?b) 2)) (sin (/ (+ ?a ?b) 2))))", + "(+ (sin ?a) (sin ?b)) ==> (* 2 (* (sin (/ (+ ?a ?b) 2)) (cos (/ (- ?a ?b) 2))))", + "(+ (cos ?a) (cos ?b)) ==> (* 2 (* (cos (/ (+ ?a ?b) 2)) (cos (/ (- ?a ?b) 2))))", + "(* (cos ?a) (cos ?b)) ==> (/ (+ (cos (+ ?a ?b)) (cos (- ?a ?b))) 2)", + "(* (sin ?a) (sin ?b)) ==> (/ (- (cos (- ?a ?b)) (cos (+ ?a ?b))) 2)", + "(* (sin ?a) (cos ?b)) ==> (/ (+ (sin (- ?a ?b)) (sin (+ ?a ?b))) 2)", + "(tan ?a) ==> (/ (sin ?a) (cos ?a))", + "(/ (sin ?a) (cos ?a)) ==> (tan ?a)", + "(tan (/ (+ ?a ?b) 2)) ==> (/ (+ (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b)))", + "(tan (/ (- ?a ?b) 2)) ==> (/ (- (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b)))", + "(cos 0) ==> 1", + "(+ (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a))) ==> 1", + "(- 1 (* (cos ?a) (cos ?a))) ==> (* (sin ?a) (sin ?a))", + "(- 1 (* (sin ?a) (sin ?a))) ==> (* (cos ?a) (cos ?a))", + "(/ (sin ?a) (+ 1 (cos ?a))) ==> (tan (/ ?a 2))", + "(/ (- 1 (cos ?a)) (sin ?a)) ==> (tan (/ ?a 2))", + "(/ (+ (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b))) ==> (tan (/ (+ ?a ?b) 2))", + "(/ (- (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b))) ==> (tan (/ (- ?a ?b) 2))" + ] +} diff --git a/jfp/baseline/ENUMO-RAT-Herbie-derive.json b/jfp/baseline/ENUMO-RAT-Herbie-derive.json new file mode 100644 index 00000000..9e1b8908 --- /dev/null +++ b/jfp/baseline/ENUMO-RAT-Herbie-derive.json @@ -0,0 +1,87 @@ +{ + "duration": { + "secs": 1, + "nanos": 121720625 + }, + "num_rules": 181, + "num_against": 75, + "can": [ + "(log (pow ?a ?b)) ==> (* ?b (log ?a))", + "(pow (exp ?a) ?b) ==> (exp (* ?a ?b))", + "(pow ?a ?b) ==> (exp (* (log ?a) ?b))", + "(* (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (+ ?b ?c))", + "(* (pow ?a ?b) (pow ?c ?b)) ==> (pow (* ?a ?c) ?b)", + "(pow (pow ?a ?b) ?c) ==> (pow ?a (* ?b ?c))", + "(pow ?a (* ?b ?c)) ==> (pow (pow ?a ?b) ?c)", + "(pow ?a (+ ?b ?c)) ==> (* (pow ?a ?b) (pow ?a ?c))", + "(pow (* ?a ?b) ?c) ==> (* (pow ?a ?c) (pow ?b ?c))", + "(* ?a ?a) ==> (pow ?a 2)", + "(exp (* (log ?a) ?b)) ==> (pow ?a ?b)", + "(* (pow ?a ?b) ?a) ==> (pow ?a (+ ?b 1))", + "(pow ?a 2) ==> (* ?a ?a)", + "?a ==> (pow ?a 1)", + "(pow ?a 0) ==> 1", + "(pow 1 ?a) ==> 1", + "(pow ?a 1) ==> ?a", + "(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b))", + "(/ (exp ?a) (exp ?b)) ==> (exp (- ?a ?b))", + "(exp (* ?a ?b)) ==> (pow (exp ?a) ?b)", + "(exp (* ?a 2)) ==> (* (exp ?a) (exp ?a))", + "(exp (* ?a 3)) ==> (pow (exp ?a) 3)", + "(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b))", + "(exp (- ?a ?b)) ==> (/ (exp ?a) (exp ?b))", + "(exp 0) ==> 1", + "1 ==> (exp 0)", + "(exp (log ?a)) ==> ?a", + "(log (exp ?a)) ==> ?a", + "?a ==> (exp (log ?a))", + "?a ==> (log (exp ?a))", + "(cbrt (* ?a ?b)) ==> (* (cbrt ?a) (cbrt ?b))", + "(cbrt (/ ?a ?b)) ==> (/ (cbrt ?a) (cbrt ?b))", + "(* (cbrt ?a) (cbrt ?b)) ==> (cbrt (* ?a ?b))", + "(/ (cbrt ?a) (cbrt ?b)) ==> (cbrt (/ ?a ?b))", + "(pow (* ?a ?b) 3) ==> (* (pow ?a 3) (pow ?b 3))", + "(sqrt (* ?a ?b)) ==> (* (sqrt ?a) (sqrt ?b))", + "(sqrt (/ ?a ?b)) ==> (/ (sqrt ?a) (sqrt ?b))", + "(* (sqrt ?a) (sqrt ?b)) ==> (sqrt (* ?a ?b))", + "(/ (sqrt ?a) (sqrt ?b)) ==> (sqrt (/ ?a ?b))", + "(pow ?a ?b) ==> (* (pow ?a (/ ?b 2)) (pow ?a (/ ?b 2)))", + "(* (pow ?a ?b) (pow ?a ?b)) ==> (pow ?a (* 2 ?b))" + ], + "cannot": [ + "(+ (log ?a) (log ?b)) ==> (log (* ?a ?b))", + "(- (log ?a) (log ?b)) ==> (log (/ ?a ?b))", + "(log (* ?a ?b)) ==> (+ (log ?a) (log ?b))", + "(log (/ ?a ?b)) ==> (- (log ?a) (log ?b))", + "(/ 1 ?a) ==> (pow ?a -1)", + "(pow 0 ?a) ==> 0", + "(/ (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (- ?b ?c))", + "(pow ?a (- ?b ?c)) ==> (/ (pow ?a ?b) (pow ?a ?c))", + "(sqrt ?a) ==> (pow ?a 1/2)", + "(cbrt ?a) ==> (pow ?a 1/3)", + "(* (* ?a ?a) ?a) ==> (pow ?a 3)", + "(pow ?a 1/2) ==> (sqrt ?a)", + "(pow ?a 3) ==> (* (* ?a ?a) ?a)", + "(pow ?a 1/3) ==> (cbrt ?a)", + "(pow ?a -1) ==> (/ 1 ?a)", + "(exp (/ ?a 2)) ==> (sqrt (exp ?a))", + "(exp (/ ?a 3)) ==> (cbrt (exp ?a))", + "(* ?a (* ?a ?a)) ==> (pow ?a 3)", + "?a ==> (* (* (cbrt ?a) (cbrt ?a)) (cbrt ?a))", + "?a ==> (cbrt (* (* ?a ?a) ?a))", + "(pow (/ ?a ?b) 3) ==> (/ (pow ?a 3) (pow ?b 3))", + "(pow ?a 3) ==> (* ?a (* ?a ?a))", + "(pow (cbrt ?a) 3) ==> ?a", + "(cbrt (pow ?a 3)) ==> ?a", + "(* (* (cbrt ?a) (cbrt ?a)) (cbrt ?a)) ==> ?a", + "(* (cbrt ?a) (* (cbrt ?a) (cbrt ?a))) ==> ?a", + "(sqrt (pow ?a ?b)) ==> (pow ?a (/ ?b 2))", + "(pow (sqrt ?a) ?b) ==> (pow ?a (/ ?b 2))", + "?a ==> (* (sqrt ?a) (sqrt ?a))", + "(* (sqrt ?a) (sqrt ?a)) ==> ?a", + "(+ (pow ?a 3) (pow ?b 3)) ==> (* (+ (* ?a ?a) (- (* ?b ?b) (* ?a ?b))) (+ ?a ?b))", + "(- (pow ?a 3) (pow ?b 3)) ==> (* (+ (* ?a ?a) (+ (* ?b ?b) (* ?a ?b))) (- ?a ?b))", + "(+ ?a ?b) ==> (/ (+ (pow ?a 3) (pow ?b 3)) (+ (* ?a ?a) (- (* ?b ?b) (* ?a ?b))))", + "(- ?a ?b) ==> (/ (- (pow ?a 3) (pow ?b 3)) (+ (* ?a ?a) (+ (* ?b ?b) (* ?a ?b))))" + ] +} diff --git a/jfp/baseline/Enumo-A5-derive.json b/jfp/baseline/Enumo-A5-derive.json new file mode 100644 index 00000000..d94c4e32 --- /dev/null +++ b/jfp/baseline/Enumo-A5-derive.json @@ -0,0 +1,492 @@ +{ + "duration": { + "secs": 17, + "nanos": 805745709 + }, + "num_rules": 840, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(* ?a (|| ?b ?a)) ==> ?a", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))" + ] +} diff --git a/jfp/baseline/Enumo-Enumo-derive.json b/jfp/baseline/Enumo-Enumo-derive.json new file mode 100644 index 00000000..e086b017 --- /dev/null +++ b/jfp/baseline/Enumo-Enumo-derive.json @@ -0,0 +1,851 @@ +{ + "duration": { + "secs": 0, + "nanos": 105604084 + }, + "num_rules": 840, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [] +} diff --git a/jfp/baseline/Enumo-Halide-derive.json b/jfp/baseline/Enumo-Halide-derive.json new file mode 100644 index 00000000..15be8563 --- /dev/null +++ b/jfp/baseline/Enumo-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 7, + "nanos": 949178959 + }, + "num_rules": 840, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(min ?x ?x) ==> ?x", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(== ?x 1) ==> ?x", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ 0 ?x) ==> 0", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))" + ] +} diff --git a/jfp/baseline/atoms5_halide.rules b/jfp/baseline/atoms5_halide.rules new file mode 100644 index 00000000..61df8135 --- /dev/null +++ b/jfp/baseline/atoms5_halide.rules @@ -0,0 +1,480 @@ +(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1)) +(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0)) +(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0)) +(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0)) +(== (max ?a 0) 1) ==> (== ?a (<= ?a 1)) +(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1) +(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1)) +(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1)) +(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1)) +(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1)) +(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1)) +(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1)) +(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1)) +(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a)) +(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1)) +(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a)) +(== ?a (< ?a 0)) ==> (! (max ?a -1)) +(! (max ?a -1)) ==> (== ?a (< ?a 0)) +(== ?a (< 1 ?a)) ==> (! (max ?a -1)) +(! (max ?a -1)) ==> (== ?a (< 1 ?a)) +(! (max ?a -1)) ==> (<= (* ?a ?a) 0) +(<= (* ?a ?a) 0) ==> (! (max ?a -1)) +(<= 2 ?a) ==> (&& ?a (< 1 ?a)) +(&& ?a (< 1 ?a)) ==> (<= 2 ?a) +(* ?a (<= ?a 0)) ==> (min ?a 0) +(min ?a 0) ==> (* ?a (<= ?a 0)) +(* ?a (< ?a 0)) ==> (min ?a 0) +(min ?a 0) ==> (* ?a (< ?a 0)) +(max ?a (< 0 ?a)) ==> (max ?a 0) +(max ?a 0) ==> (max ?a (< 0 ?a)) +(max ?a (!= ?a 1)) ==> (max ?a 1) +(max ?a 1) ==> (max ?a (!= ?a 1)) +(max ?a (<= ?a 0)) ==> (max ?a 1) +(max ?a 1) ==> (max ?a (<= ?a 0)) +(max ?a (<= ?a 1)) ==> (max ?a 1) +(max ?a 1) ==> (max ?a (<= ?a 1)) +(min ?a (<= ?a 0)) ==> (min ?a 0) +(min ?a 0) ==> (min ?a (<= ?a 0)) +(min ?a (< ?a 0)) ==> (min ?a 0) +(min ?a 0) ==> (min ?a (< ?a 0)) +(== ?a (< -1 ?a)) ==> (== ?a 1) +(== ?a 1) ==> (== ?a (< -1 ?a)) +(== ?a (<= ?a 1)) ==> (== ?a 1) +(== ?a 1) ==> (== ?a (<= ?a 1)) +(== ?a (<= 0 ?a)) ==> (== ?a 1) +(== ?a 1) ==> (== ?a (<= 0 ?a)) +(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a))) +(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a)) +(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a))) +(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a)) +(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a))) +(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a)) +(max ?a (== ?a 1)) ==> (max ?a (- (! ?a))) +(max ?a (- (! ?a))) ==> (max ?a (== ?a 1)) +(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a)) +(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a))) +(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a)) +(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a))) +(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1)) +(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a)) +(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a)) +(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a)) +(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0)) +(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a)) +(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a)) +(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1)) +(! (max ?a (- ?a))) ==> (! (max ?a -1)) +(! (max ?a -1)) ==> (! (max ?a (- ?a))) +(max ?a (< -1 ?a)) ==> (max ?a (! ?a)) +(max ?a (! ?a)) ==> (max ?a (< -1 ?a)) +(select ?a (- ?a) 1) ==> (- (! ?a) ?a) +(- (! ?a) ?a) ==> (select ?a (- ?a) 1) +(max ?a (! ?a)) ==> (max ?a (<= 0 ?a)) +(max ?a (<= 0 ?a)) ==> (max ?a (! ?a)) +(- ?a (! ?a)) ==> (select ?a ?a -1) +(select ?a ?a -1) ==> (- ?a (! ?a)) +(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a) +(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a)) +(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a)) +(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a)) +(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0)) +(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0)) +(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b) +(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1) +(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1) +(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1)) +(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1)) +(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1)) +(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0)) +(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0) +(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b)) +(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0) +(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a)) +(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0)) +(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1) +(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1)) +(^ ?b (max ?a 1)) ==> (! (max ?b -1)) +(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1) +(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b) +(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b) +(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a)) +(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b)) +(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0)) +(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b)) +(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0)) +(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0)) +(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a))) +(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a)) +(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1) +(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0)) +(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1)) +(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a)) +(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0) +(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a) +(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a) +(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a) +(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0) +(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0) +(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b)) +(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b)) +(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0) +(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a)) +(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1) +(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a)) +(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0)) +(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a)) +(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0)) +(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a)) +(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a)) +(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0)) +(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a)) +(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1)) +(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a)) +(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b)) +(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0)) +(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b)) +(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a)) +(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a)) +(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0)) +(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a)) +(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1) +(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a)) +(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a)) +(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a)) +(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a)) +(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b)) +(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0)) +(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a)) +(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0)) +(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a)) +(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1)) +(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1) +(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a)) +(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0)) +(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a)) +(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a) +(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a) +(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a) +(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0) +(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0)) +(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a)) +(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a) +(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a) +(select ?c ?a ?b) ==> (select (! ?c) ?b ?a) +(select (! ?c) ?b ?a) ==> (select ?c ?a ?b) +(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a)) +(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b)) +(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a) +(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b) +(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a)) +(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c)) +(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a)) +(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b)) +(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a)) +(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c)) +(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a)) +(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a)) +(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a)) +(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a)) +(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a) +(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a) +(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b) +(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a)) +(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a) +(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b)) +(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a)) +(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a)) +(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a)) +(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a)) +(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a) +(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c)) +(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a)) +(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a)) +(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a)) +(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a)) +(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a)) +(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a)) +(min ?a (max ?b ?a)) ==> ?a +(max ?a (min ?b ?a)) ==> ?a +(* ?a (|| ?b ?a)) ==> ?a +(<= ?a ?b) ==> (<= ?a (min ?b ?a)) +(<= ?a (min ?b ?a)) ==> (<= ?a ?b) +(<= ?b ?a) ==> (<= (max ?a ?b) ?a) +(<= (max ?a ?b) ?a) ==> (<= ?b ?a) +(|| ?a (&& ?a ?b)) ==> (&& ?a ?a) +(|| ?a ?b) ==> (|| ?b (- ?b ?a)) +(|| ?b (- ?b ?a)) ==> (|| ?a ?b) +(|| ?b ?a) ==> (|| ?b (^ ?b ?a)) +(|| ?b (^ ?b ?a)) ==> (|| ?b ?a) +(<= ?a ?b) ==> (== ?b (max ?b ?a)) +(== ?b (max ?b ?a)) ==> (<= ?a ?b) +(!= (! ?b) (! ?a)) ==> (^ ?b ?a) +(^ ?b ?a) ==> (!= (! ?b) (! ?a)) +(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a)) +(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b)) +(< ?b (== ?a ?b)) ==> (< ?b (! ?a)) +(< ?b (! ?a)) ==> (< ?b (== ?a ?b)) +(- (min ?a (- ?b))) ==> (max ?b (- ?a)) +(max ?b (- ?a)) ==> (- (min ?a (- ?b))) +(min ?a (! ?b)) ==> (min ?a (^ ?b ?a)) +(min ?a (^ ?b ?a)) ==> (min ?a (! ?b)) +(! (&& ?a (! ?b))) ==> (|| ?b (! ?a)) +(|| ?b (! ?a)) ==> (! (&& ?a (! ?b))) +(! (|| ?a ?b)) ==> (! (select ?b ?b ?a)) +(! (select ?b ?b ?a)) ==> (! (|| ?a ?b)) +(* ?b (^ ?a ?b)) ==> (* ?b (! ?a)) +(* ?b (! ?a)) ==> (* ?b (^ ?a ?b)) +(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a)) +(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b)) +(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a)) +(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a)) +(max (! ?b) (! ?a)) ==> (! (&& ?b ?a)) +(! (&& ?b ?a)) ==> (max (! ?b) (! ?a)) +(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a)) +(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b)) +(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a)) +(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b)) +(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a) +(select ?a (! ?b) ?a) ==> (&& ?a (! ?b)) +(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a) +(select ?a ?b ?a) ==> (* ?b (&& ?a ?b)) +(! (|| ?b ?a)) ==> (min (! ?b) (! ?a)) +(min (! ?b) (! ?a)) ==> (! (|| ?b ?a)) +(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a)) +(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a)) +(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a)) +(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b)) +(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a)) +(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b)) +(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a)) +(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a)) +(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a)) +(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a)) +(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a)) +(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a)) +(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a) +(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a)) +(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b) +(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a)) +(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b)) +(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a)) +(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a)) +(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a)) +(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a)) +(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a)) +(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a)) +(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a)) +(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a)) +(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b)) +(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a)) +(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b))) +(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a))) +(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a))) +(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b)) +(&& ?a (max ?b 1)) ==> (&& ?a ?a) +(max (&& ?b ?a) 0) ==> (&& ?b ?a) +(&& ?b ?a) ==> (max (&& ?b ?a) 0) +(&& ?a ?b) ==> (&& ?b (min ?a 1)) +(&& ?b (min ?a 1)) ==> (&& ?a ?b) +(&& ?b ?a) ==> (min (&& ?b ?a) 1) +(min (&& ?b ?a) 1) ==> (&& ?b ?a) +(&& ?b ?a) ==> (== (&& ?b ?a) 1) +(== (&& ?b ?a) 1) ==> (&& ?b ?a) +(select ?b ?a (! ?b)) ==> (select ?b ?a 1) +(select ?b ?a 1) ==> (select ?b ?a (! ?b)) +(select ?a (! ?b) 1) ==> (! (&& ?b ?a)) +(! (&& ?b ?a)) ==> (select ?a (! ?b) 1) +(! (select ?a 1 ?b)) ==> (! (|| ?b ?a)) +(! (|| ?b ?a)) ==> (! (select ?a 1 ?b)) +(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a)) +(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a)) +(< ?b (min ?b ?a)) ==> (! (min ?b -1)) +(< ?b (min ?a ?b)) ==> (== (! ?a) -1) +(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a)) +(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a)) +(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a)) +(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1)) +(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a) +(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a) +(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0)) +(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b)) +(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a) +(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a) +(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a) +(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a) +(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a)) +(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0)) +(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a)) +(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1)) +(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a)) +(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b)) +(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a) +(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a) +(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a) +(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a) +(max (- ?a) 0) ==> (- (min ?a 0)) +(- (min ?a 0)) ==> (max (- ?a) 0) +(! (min ?a 0)) ==> (<= (- ?a) ?a) +(<= (- ?a) ?a) ==> (! (min ?a 0)) +(!= ?a (- ?a)) ==> (select ?a 1 ?a) +(select ?a 1 ?a) ==> (!= ?a (- ?a)) +(! (max ?a 0)) ==> (<= ?a (! ?a)) +(<= ?a (! ?a)) ==> (! (max ?a 0)) +(!= ?a (! ?a)) ==> (max (! ?a) 1) +(max (! ?a) 1) ==> (!= ?a (! ?a)) +(max (! ?a) 1) ==> (|| ?a (! ?a)) +(|| ?a (! ?a)) ==> (max (! ?a) 1) +(! (max ?a 1)) ==> (== ?a (! ?a)) +(== ?a (! ?a)) ==> (! (max ?a 1)) +(min (! ?a) 0) ==> (== ?a (! ?a)) +(== ?a (! ?a)) ==> (min (! ?a) 0) +(== ?a (! ?a)) ==> (< 1 (! ?a)) +(< 1 (! ?a)) ==> (== ?a (! ?a)) +(== ?a (! ?a)) ==> (< (! ?a) 0) +(< (! ?a) 0) ==> (== ?a (! ?a)) +(+ ?a (! ?a)) ==> (select ?a ?a 1) +(select ?a ?a 1) ==> (+ ?a (! ?a)) +(- 1 (! ?a)) ==> (&& ?a ?a) +(&& ?a ?a) ==> (- 1 (! ?a)) +(|| ?a -1) ==> (|| ?a (! ?a)) +(|| ?a (! ?a)) ==> (|| ?a -1) +(&& ?a ?a) ==> (select ?a 1 ?a) +(select ?a 1 ?a) ==> (&& ?a ?a) +(min ?a 0) ==> (min ?a (! ?a)) +(min ?a (! ?a)) ==> (min ?a 0) +(<= 0 ?a) ==> (<= (- ?a) ?a) +(<= (- ?a) ?a) ==> (<= 0 ?a) +(== (! ?a) 1) ==> (! ?a) +(! ?a) ==> (== (! ?a) 1) +(! (min ?a 1)) ==> (! ?a) +(! ?a) ==> (! (min ?a 1)) +(max (! ?a) 0) ==> (! ?a) +(! ?a) ==> (max (! ?a) 0) +(< 0 (! ?a)) ==> (! ?a) +(! ?a) ==> (< 0 (! ?a)) +(! ?a) ==> (min (! ?a) 1) +(min (! ?a) 1) ==> (! ?a) +(^ ?a (! ?a)) ==> (|| ?a (! ?a)) +(|| ?a (! ?a)) ==> (^ ?a (! ?a)) +(&& ?a (! ?a)) ==> (== ?a (! ?a)) +(== ?a (! ?a)) ==> (&& ?a (! ?a)) +(* ?a (! ?a)) ==> (== ?a (! ?a)) +(== ?a (! ?a)) ==> (* ?a (! ?a)) +(< (! ?a) ?a) ==> (< (- ?a) ?a) +(< (- ?a) ?a) ==> (< (! ?a) ?a) +(< (! ?a) ?a) ==> (<= (! ?a) ?a) +(<= (! ?a) ?a) ==> (< (! ?a) ?a) +(! (+ ?a ?a)) ==> (! ?a) +(! ?a) ==> (! (+ ?a ?a)) +(select ?b 0 ?a) ==> (* ?a (! ?b)) +(* ?a (! ?b)) ==> (select ?b 0 ?a) +(select ?a ?b ?a) ==> (select ?a ?b 0) +(select ?a ?b 0) ==> (select ?a ?b ?a) +(select 0 ?b ?a) ==> ?a +(select 1 ?b ?a) ==> ?b +(! (* ?b ?a)) ==> (! (&& ?b ?a)) +(! (&& ?b ?a)) ==> (! (* ?b ?a)) +(- (* ?b ?a)) ==> (* ?b (- ?a)) +(* ?b (- ?a)) ==> (- (* ?b ?a)) +(! (^ ?b ?a)) ==> (^ ?a (! ?b)) +(^ ?a (! ?b)) ==> (! (^ ?b ?a)) +(^ ?b (! ?a)) ==> (^ ?a (! ?b)) +(^ ?a (! ?b)) ==> (^ ?b (! ?a)) +(!= ?b (- ?a)) ==> (!= ?a (- ?b)) +(!= ?a (- ?b)) ==> (!= ?b (- ?a)) +(select ?b ?a ?a) ==> ?a +(- (- ?a ?b)) ==> (- ?b ?a) +(- ?b ?a) ==> (- (- ?a ?b)) +(&& ?a (- ?b)) ==> (&& ?b ?a) +(&& ?b ?a) ==> (&& ?a (- ?b)) +(- ?a (- ?b)) ==> (+ ?b ?a) +(+ ?b ?a) ==> (- ?a (- ?b)) +(^ ?a (- ?b)) ==> (^ ?b ?a) +(^ ?b ?a) ==> (^ ?a (- ?b)) +(|| ?a (- ?b)) ==> (|| ?b ?a) +(|| ?b ?a) ==> (|| ?a (- ?b)) +(<= ?a ?b) ==> (! (< ?b ?a)) +(! (< ?b ?a)) ==> (<= ?a ?b) +(== ?a ?b) ==> (! (- ?b ?a)) +(! (- ?b ?a)) ==> (== ?a ?b) +(!= ?b ?a) ==> (! (== ?b ?a)) +(! (== ?b ?a)) ==> (!= ?b ?a) +(== ?b ?a) ==> (! (!= ?b ?a)) +(! (!= ?b ?a)) ==> (== ?b ?a) +(< ?a ?b) ==> (! (<= ?b ?a)) +(! (<= ?b ?a)) ==> (< ?a ?b) +(< (- ?a) ?b) ==> (< (- ?b) ?a) +(< (- ?b) ?a) ==> (< (- ?a) ?b) +(+ ?a ?b) ==> (+ ?b ?a) +(+ ?b ?a) ==> (+ ?a ?b) +(|| ?a ?b) ==> (|| ?b ?a) +(|| ?b ?a) ==> (|| ?a ?b) +(min ?a ?b) ==> (min ?b ?a) +(min ?b ?a) ==> (min ?a ?b) +(!= ?a ?b) ==> (!= ?b ?a) +(!= ?b ?a) ==> (!= ?a ?b) +(^ ?a ?b) ==> (^ ?b ?a) +(^ ?b ?a) ==> (^ ?a ?b) +(max ?a ?b) ==> (max ?b ?a) +(max ?b ?a) ==> (max ?a ?b) +(&& ?a ?b) ==> (&& ?b ?a) +(&& ?b ?a) ==> (&& ?a ?b) +(* ?a ?b) ==> (* ?b ?a) +(* ?b ?a) ==> (* ?a ?b) +(== ?a ?b) ==> (== ?b ?a) +(== ?b ?a) ==> (== ?a ?b) +(min ?a ?a) ==> ?a +?a ==> (min ?a ?a) +(- (- ?a)) ==> ?a +?a ==> (- (- ?a)) +(max ?a ?a) ==> ?a +?a ==> (max ?a ?a) +(! (- ?a)) ==> (! ?a) +(! ?a) ==> (! (- ?a)) +(^ ?a ?a) ==> (< ?a ?a) +(< ?a ?a) ==> (^ ?a ?a) +(^ ?a ?a) ==> (!= ?a ?a) +(!= ?a ?a) ==> (^ ?a ?a) +(^ ?a ?a) ==> (- ?a ?a) +(- ?a ?a) ==> (^ ?a ?a) +(! (! ?a)) ==> (|| ?a ?a) +(|| ?a ?a) ==> (! (! ?a)) +(! (! ?a)) ==> (&& ?a ?a) +(&& ?a ?a) ==> (! (! ?a)) +(<= ?a ?a) ==> (== ?a ?a) +(== ?a ?a) ==> (<= ?a ?a) +(^ ?a ?a) ==> 0 +(<= ?a ?a) ==> 1 +(- ?a 0) ==> ?a +?a ==> (- ?a 0) +(+ 0 ?a) ==> ?a +?a ==> (+ 0 ?a) +(* ?a 1) ==> ?a +?a ==> (* ?a 1) +(- 0 ?a) ==> (- ?a) +(- ?a) ==> (- 0 ?a) +(== 0 ?a) ==> (! ?a) +(! ?a) ==> (== 0 ?a) +(! ?a) ==> (^ ?a 1) +(^ ?a 1) ==> (! ?a) +(|| ?a ?a) ==> (|| 0 ?a) +(|| 0 ?a) ==> (|| ?a ?a) +(&& ?a 1) ==> (&& ?a ?a) +(&& ?a ?a) ==> (&& ?a 1) +(^ ?a ?a) ==> (* 0 ?a) +(* 0 ?a) ==> (^ ?a ?a) +(^ ?a ?a) ==> (&& ?a 0) +(&& ?a 0) ==> (^ ?a ?a) +(^ 0 ?a) ==> (! (! ?a)) +(! (! ?a)) ==> (^ 0 ?a) +(! (! ?a)) ==> (!= 0 ?a) +(!= 0 ?a) ==> (! (! ?a)) +(|| ?a 1) ==> (<= ?a ?a) +(<= ?a ?a) ==> (|| ?a 1) +(< ?a 1) ==> (<= ?a 0) +(<= ?a 0) ==> (< ?a 1) +(< 0 ?a) ==> (<= 1 ?a) +(<= 1 ?a) ==> (< 0 ?a) diff --git a/jfp/baseline/enumo_exp.rules b/jfp/baseline/enumo_exp.rules new file mode 100644 index 00000000..c7bf583d --- /dev/null +++ b/jfp/baseline/enumo_exp.rules @@ -0,0 +1,40 @@ +(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b)) +(exp (- ?a)) ==> (/ 1 (exp ?a)) +(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b)) +(/ 1 (exp ?a)) ==> (exp (- ?a)) +(exp 0) ==> 1 +(log (exp ?a)) ==> ?a +(exp (log ?a)) ==> ?a +(pow 1 ?a) ==> (cbrt 1) +(pow 1 ?a) ==> (sqrt 1) +(pow 1 ?a) ==> 1 +?a ==> (pow ?a 1) +(pow ?a 1) ==> ?a +(* 1/2 (log ?a)) ==> (log (sqrt ?a)) +(log (sqrt ?a)) ==> (* 1/2 (log ?a)) +(* 1/3 (log ?a)) ==> (log (cbrt ?a)) +(log (cbrt ?a)) ==> (* 1/3 (log ?a)) +(sqrt (cbrt ?a)) ==> (cbrt (sqrt ?a)) +(cbrt (sqrt ?a)) ==> (sqrt (cbrt ?a)) +(* (cbrt ?b) (cbrt ?a)) ==> (cbrt (* ?a ?b)) +(cbrt (* ?a ?b)) ==> (* (cbrt ?b) (cbrt ?a)) +(* (sqrt ?b) (sqrt ?a)) ==> (sqrt (* ?b ?a)) +(sqrt (* ?b ?a)) ==> (* (sqrt ?b) (sqrt ?a)) +(pow (sqrt ?b) ?a) ==> (sqrt (pow ?b ?a)) +(sqrt (pow ?b ?a)) ==> (pow (sqrt ?b) ?a) +(cbrt (pow ?b ?a)) ==> (pow (cbrt ?b) ?a) +(pow (cbrt ?b) ?a) ==> (cbrt (pow ?b ?a)) +(* (pow ?b ?c) (pow ?b ?a)) ==> (pow ?b (+ ?a ?c)) +(pow ?b (+ ?a ?c)) ==> (* (pow ?b ?c) (pow ?b ?a)) +(pow (* ?c ?b) ?a) ==> (* (pow ?b ?a) (pow ?c ?a)) +(* (pow ?b ?a) (pow ?c ?a)) ==> (pow (* ?c ?b) ?a) +(pow (exp ?c) (* ?b ?a)) ==> (pow (exp ?a) (* ?c ?b)) +(pow (exp ?a) (* ?c ?b)) ==> (pow (exp ?c) (* ?b ?a)) +(* ?c (log (pow ?b ?a))) ==> (* (log ?b) (* ?a ?c)) +(* (log ?b) (* ?a ?c)) ==> (* ?c (log (pow ?b ?a))) +(pow (pow ?c ?b) (log ?a)) ==> (pow (pow ?a ?b) (log ?c)) +(pow (pow ?a ?b) (log ?c)) ==> (pow (pow ?c ?b) (log ?a)) +(pow ?c (* ?b ?a)) ==> (pow (pow ?c ?b) ?a) +(pow (pow ?c ?b) ?a) ==> (pow ?c (* ?b ?a)) +(pow (pow ?c ?b) ?a) ==> (pow (pow ?c ?a) ?b) +(pow (pow ?c ?a) ?b) ==> (pow (pow ?c ?b) ?a) diff --git a/jfp/baseline/enumo_halide.rules b/jfp/baseline/enumo_halide.rules new file mode 100644 index 00000000..3c67cdb7 --- /dev/null +++ b/jfp/baseline/enumo_halide.rules @@ -0,0 +1,840 @@ +(&& (^ ?b ?a) 1) ==> (^ ?b ?a) +(^ ?b ?a) ==> (&& (^ ?b ?a) 1) +(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b)) +(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a)) +(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b)) +(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a)) +(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b)) +(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a)) +(|| ?b (! ?a)) ==> (! (&& ?a (! ?b))) +(! (&& ?a (! ?b))) ==> (|| ?b (! ?a)) +(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a)) +(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a)) +(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a)) +(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a)) +(|| ?b (^ ?b ?a)) ==> (|| ?b ?a) +(|| ?b ?a) ==> (|| ?b (^ ?b ?a)) +(&& ?b (|| ?b ?a)) ==> (&& ?b ?b) +(|| ?a (&& ?a ?b)) ==> (&& ?a ?a) +(|| ?a (|| ?b ?a)) ==> (|| ?b ?a) +(|| ?b ?a) ==> (|| ?a (|| ?b ?a)) +(&& ?b (&& ?a ?a)) ==> (&& ?a ?b) +(&& ?a ?b) ==> (&& ?b (&& ?a ?a)) +(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b)) +(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a)) +(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b)) +(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a)) +(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a)) +(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a)) +(&& ?a (! ?a)) ==> 0 +(^ ?a (! ?a)) ==> (|| ?a (! ?a)) +(|| ?a (! ?a)) ==> (^ ?a (! ?a)) +(! (&& ?a ?a)) ==> (! ?a) +(! ?a) ==> (! (&& ?a ?a)) +(! (^ ?b ?a)) ==> (^ ?a (! ?b)) +(^ ?a (! ?b)) ==> (! (^ ?b ?a)) +(&& ?a ?b) ==> (&& ?b ?a) +(&& ?b ?a) ==> (&& ?a ?b) +(^ ?a ?b) ==> (^ ?b ?a) +(^ ?b ?a) ==> (^ ?a ?b) +(|| ?a ?b) ==> (|| ?b ?a) +(|| ?b ?a) ==> (|| ?a ?b) +(|| ?a ?a) ==> (&& ?a ?a) +(&& ?a ?a) ==> (|| ?a ?a) +(|| ?a ?a) ==> (! (! ?a)) +(! (! ?a)) ==> (|| ?a ?a) +(^ ?a ?a) ==> 0 +(! ?a) ==> (^ ?a 1) +(^ ?a 1) ==> (! ?a) +(&& ?a 1) ==> (&& ?a ?a) +(&& ?a ?a) ==> (&& ?a 1) +(|| ?a ?a) ==> (|| ?a 0) +(|| ?a 0) ==> (|| ?a ?a) +(|| ?a ?a) ==> (^ ?a 0) +(^ ?a 0) ==> (|| ?a ?a) +(^ ?a ?a) ==> (&& 0 ?a) +(&& 0 ?a) ==> (^ ?a ?a) +(|| ?a 1) ==> 1 +(min -1 (max ?a 1)) ==> (min -1 (max ?a 0)) +(min -1 (max ?a 0)) ==> (min -1 (max ?a 1)) +(min 0 (max ?a -1)) ==> (max -1 (min ?a 0)) +(max -1 (min ?a 0)) ==> (min 0 (max ?a -1)) +(max -1 (min ?a 1)) ==> (min 1 (max ?a -1)) +(min 1 (max ?a -1)) ==> (max -1 (min ?a 1)) +(min 1 (max ?a 0)) ==> (max 0 (min ?a 1)) +(max 0 (min ?a 1)) ==> (min 1 (max ?a 0)) +(min -1 (max ?a 0)) ==> -1 +(max 1 (min ?a -1)) ==> 1 +(max (min ?a 0) 1) ==> 1 +(min 0 (max ?a 1)) ==> 0 +(max 0 (min ?a -1)) ==> 0 +(min (* ?a ?a) -1) ==> -1 +(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0) +(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a)) +(max (* ?a ?a) 0) ==> (* ?a ?a) +(* ?a ?a) ==> (max (* ?a ?a) 0) +(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0)) +(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a)) +(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a)) +(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0)) +(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0)) +(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a)) +(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0) +(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a) +(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1)) +(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a)) +(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b)) +(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a)) +(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0)) +(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a)) +(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a)) +(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b) +(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a)) +(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b)) +(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a)) +(min ?b (- ?a)) ==> (- (max ?a (- ?b))) +(- (max ?a (- ?b))) ==> (min ?b (- ?a)) +(min ?a (max ?b ?a)) ==> ?a +(max ?a (min ?b ?a)) ==> ?a +(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a) +(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a)) +(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b) +(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a) +(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a)) +(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a)) +(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c)) +(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a)) +(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c)) +(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a)) +(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c)) +(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a)) +(- (min ?a 1)) ==> (max (- ?a) -1) +(max (- ?a) -1) ==> (- (min ?a 1)) +(min (- ?a) 0) ==> (- (max ?a 0)) +(- (max ?a 0)) ==> (min (- ?a) 0) +(- (max ?a 1)) ==> (min (- ?a) -1) +(min (- ?a) -1) ==> (- (max ?a 1)) +(* ?b (- ?a)) ==> (- (* ?a ?b)) +(- (* ?a ?b)) ==> (* ?b (- ?a)) +(+ ?b (- ?a)) ==> (- ?b ?a) +(- ?b ?a) ==> (+ ?b (- ?a)) +(- ?b ?a) ==> (- (- ?a ?b)) +(- (- ?a ?b)) ==> (- ?b ?a) +(+ -1 ?a) ==> (- ?a 1) +(- ?a 1) ==> (+ -1 ?a) +(- ?a -1) ==> (+ ?a 1) +(+ ?a 1) ==> (- ?a -1) +(- ?a ?a) ==> (* 0 ?a) +(* 0 ?a) ==> (- ?a ?a) +(* -1 ?a) ==> (- ?a) +(- ?a) ==> (* -1 ?a) +(- ?a) ==> (- 0 ?a) +(- 0 ?a) ==> (- ?a) +?a ==> (- ?a 0) +(- ?a 0) ==> ?a +?a ==> (* 1 ?a) +(* 1 ?a) ==> ?a +?a ==> (+ ?a 0) +(+ ?a 0) ==> ?a +(- ?a ?a) ==> 0 +?a ==> (- (- ?a)) +(- (- ?a)) ==> ?a +?a ==> (max ?a ?a) +(max ?a ?a) ==> ?a +?a ==> (min ?a ?a) +(min ?a ?a) ==> ?a +(max ?b ?a) ==> (max ?a ?b) +(max ?a ?b) ==> (max ?b ?a) +(+ ?b ?a) ==> (+ ?a ?b) +(+ ?a ?b) ==> (+ ?b ?a) +(* ?b ?a) ==> (* ?a ?b) +(* ?a ?b) ==> (* ?b ?a) +(min ?b ?a) ==> (min ?a ?b) +(min ?a ?b) ==> (min ?b ?a) +(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a) +(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a)) +(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a) +(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a)) +(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a) +(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1)) +(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a) +(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a)) +(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0)) +(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1)) +(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a)) +(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0)) +(== ?a (< ?a 0)) ==> (== ?a 0) +(== ?a 0) ==> (== ?a (< ?a 0)) +(== ?a 0) ==> (== ?a (< 1 ?a)) +(== ?a (< 1 ?a)) ==> (== ?a 0) +(== ?a 0) ==> (== ?a (< ?a -1)) +(== ?a (< ?a -1)) ==> (== ?a 0) +(== ?a 1) ==> (== ?a (<= ?a 1)) +(== ?a (<= ?a 1)) ==> (== ?a 1) +(== ?a 1) ==> (== ?a (< -1 ?a)) +(== ?a (< -1 ?a)) ==> (== ?a 1) +(== ?a 1) ==> (== ?a (<= -1 ?a)) +(== ?a (<= -1 ?a)) ==> (== ?a 1) +(== ?a 0) ==> (== ?a (== ?a -1)) +(== ?a (== ?a -1)) ==> (== ?a 0) +(!= ?a (!= ?a -1)) ==> (!= ?a 1) +(!= ?a 1) ==> (!= ?a (!= ?a -1)) +(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a) +(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a)) +(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a)) +(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1)) +(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a)) +(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a)) +(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1) +(select ?b (- ?a) -1) ==> (- (select ?b ?a 1)) +(== (== ?a ?b) -1) ==> (== ?a (== ?a 0)) +(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1)) +(<= -1 (!= ?b ?a)) ==> 1 +(!= (< ?b ?a) -1) ==> 1 +(!= (!= ?b ?a) -1) ==> 1 +(<= (<= ?b ?a) 1) ==> 1 +(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a)) +(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a)) +(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1)) +(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a)) +(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a) +(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a) +(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1)) +(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a)) +(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b)) +(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0)) +(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0)) +(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a)) +(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a) +(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a) +(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0)) +(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a)) +(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a) +(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a) +(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a)) +(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a)) +(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a)) +(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a)) +(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1)) +(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a)) +(== (< ?b ?a) 0) ==> (<= ?a ?b) +(<= ?a ?b) ==> (== (< ?b ?a) 0) +(== (== ?b ?a) 0) ==> (!= ?b ?a) +(!= ?b ?a) ==> (== (== ?b ?a) 0) +(!= (!= ?b ?a) 1) ==> (== ?b ?a) +(== ?b ?a) ==> (!= (!= ?b ?a) 1) +(< 0 (== ?b ?a)) ==> (== ?b ?a) +(== ?b ?a) ==> (< 0 (== ?b ?a)) +(== (<= ?b ?a) 1) ==> (<= ?b ?a) +(<= ?b ?a) ==> (== (<= ?b ?a) 1) +(!= (<= ?b ?a) 0) ==> (<= ?b ?a) +(<= ?b ?a) ==> (!= (<= ?b ?a) 0) +(<= ?b ?a) ==> (< (< ?a ?b) 1) +(< (< ?a ?b) 1) ==> (<= ?b ?a) +(< ?b ?a) ==> (< (<= ?a ?b) 1) +(< (<= ?a ?b) 1) ==> (< ?b ?a) +(< 0 (< ?b ?a)) ==> (< ?b ?a) +(< ?b ?a) ==> (< 0 (< ?b ?a)) +(!= (!= ?b ?a) 0) ==> (!= ?b ?a) +(!= ?b ?a) ==> (!= (!= ?b ?a) 0) +(== (== ?b ?a) 1) ==> (== ?b ?a) +(== ?b ?a) ==> (== (== ?b ?a) 1) +(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a) +(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a)) +(select (- ?c) ?b ?a) ==> (select ?c ?b ?a) +(select ?c ?b ?a) ==> (select (- ?c) ?b ?a) +(- (== ?a 0)) ==> (select ?a 0 -1) +(select ?a 0 -1) ==> (- (== ?a 0)) +(== ?a (- ?a)) ==> (select ?a 0 1) +(select ?a 0 1) ==> (== ?a (- ?a)) +(- (!= ?a 0)) ==> (select ?a -1 ?a) +(select ?a -1 ?a) ==> (- (!= ?a 0)) +(!= ?a (- ?a)) ==> (select ?a 1 ?a) +(select ?a 1 ?a) ==> (!= ?a (- ?a)) +(!= ?a 0) ==> (!= ?a (- ?a)) +(!= ?a (- ?a)) ==> (!= ?a 0) +(== ?a (- ?a)) ==> (== ?a 0) +(== ?a 0) ==> (== ?a (- ?a)) +(<= 0 ?a) ==> (<= (- ?a) ?a) +(<= (- ?a) ?a) ==> (<= 0 ?a) +(< ?a (- ?a)) ==> (< ?a 0) +(< ?a 0) ==> (< ?a (- ?a)) +(select ?a ?b ?a) ==> (select ?a ?b 0) +(select ?a ?b 0) ==> (select ?a ?b ?a) +(select 0 ?b ?a) ==> ?a +(select 1 ?a ?b) ==> ?a +(select -1 ?b ?a) ==> ?b +(< ?b (- ?a)) ==> (< ?a (- ?b)) +(< ?a (- ?b)) ==> (< ?b (- ?a)) +(!= ?b (- ?a)) ==> (!= ?a (- ?b)) +(!= ?a (- ?b)) ==> (!= ?b (- ?a)) +(== ?b (- ?a)) ==> (== ?a (- ?b)) +(== ?a (- ?b)) ==> (== ?b (- ?a)) +(<= ?b (- ?a)) ==> (<= ?a (- ?b)) +(<= ?a (- ?b)) ==> (<= ?b (- ?a)) +(select ?b ?a ?a) ==> ?a +(<= 1 ?a) ==> (< 0 ?a) +(< 0 ?a) ==> (<= 1 ?a) +(< ?a 0) ==> (<= ?a -1) +(<= ?a -1) ==> (< ?a 0) +(<= ?a 0) ==> (< ?a 1) +(< ?a 1) ==> (<= ?a 0) +(<= 0 ?a) ==> (< -1 ?a) +(< -1 ?a) ==> (<= 0 ?a) +(<= ?a ?a) ==> 1 +(!= ?a ?a) ==> 0 +(== ?a ?a) ==> (<= ?a ?a) +(<= ?a ?a) ==> (== ?a ?a) +(< ?a ?a) ==> (!= ?a ?a) +(!= ?a ?a) ==> (< ?a ?a) +(== ?b ?a) ==> (== ?a ?b) +(== ?a ?b) ==> (== ?b ?a) +(!= ?b ?a) ==> (!= ?a ?b) +(!= ?a ?b) ==> (!= ?b ?a) +(! (min ?a 0)) ==> (< -1 ?a) +(< -1 ?a) ==> (! (min ?a 0)) +(! (max ?a 0)) ==> (< ?a 1) +(< ?a 1) ==> (! (max ?a 0)) +(! (max ?a 1)) ==> (* ?a (! ?a)) +(* ?a (! ?a)) ==> (! (max ?a 1)) +(! (min ?a -1)) ==> (* ?a (! ?a)) +(* ?a (! ?a)) ==> (! (min ?a -1)) +(+ ?a (! ?a)) ==> (select ?a ?a 1) +(select ?a ?a 1) ==> (+ ?a (! ?a)) +(- ?a (! ?a)) ==> (select ?a ?a -1) +(select ?a ?a -1) ==> (- ?a (! ?a)) +(&& ?a ?a) ==> (- 1 (! ?a)) +(- 1 (! ?a)) ==> (&& ?a ?a) +(min ?a (! ?a)) ==> (min ?a 0) +(min ?a 0) ==> (min ?a (! ?a)) +(min (! ?a) 1) ==> (! ?a) +(! ?a) ==> (min (! ?a) 1) +(max (! ?a) 0) ==> (! ?a) +(! ?a) ==> (max (! ?a) 0) +(max (! ?a) -1) ==> (! ?a) +(! ?a) ==> (max (! ?a) -1) +(! ?a) ==> (! (max ?a -1)) +(! (max ?a -1)) ==> (! ?a) +(* ?a (! ?a)) ==> (^ ?a (- ?a)) +(^ ?a (- ?a)) ==> (* ?a (! ?a)) +(! (+ ?a ?a)) ==> (! ?a) +(! ?a) ==> (! (+ ?a ?a)) +(select ?b 0 ?a) ==> (* ?a (! ?b)) +(* ?a (! ?b)) ==> (select ?b 0 ?a) +(! (&& ?b ?a)) ==> (! (* ?b ?a)) +(! (* ?b ?a)) ==> (! (&& ?b ?a)) +(== ?b ?a) ==> (! (- ?b ?a)) +(! (- ?b ?a)) ==> (== ?b ?a) +(^ ?b (- ?a)) ==> (^ ?a ?b) +(^ ?a ?b) ==> (^ ?b (- ?a)) +(! ?a) ==> (== ?a 0) +(== ?a 0) ==> (! ?a) +(! ?a) ==> (^ ?a -1) +(^ ?a -1) ==> (! ?a) +(! ?a) ==> (! (- ?a)) +(! (- ?a)) ==> (! ?a) +(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a)) +(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a)) +(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a)) +(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a)) +(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b)) +(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a)) +(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a)) +(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a)) +(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a)) +(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a)) +(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b)) +(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a)) +(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a)) +(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a)) +(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b)) +(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a)) +(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a)) +(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a)) +(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a)) +(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a)) +(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a)) +(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a)) +(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a)) +(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a)) +(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a)) +(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a)) +(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a)) +(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a)) +(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a)) +(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a)) +(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a) +(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a)) +(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a) +(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a)) +(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a) +(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a) +(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a)) +(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a)) +(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a)) +(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a)) +(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a)) +(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a)) +(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a) +(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a) +(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a) +(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a) +(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a)) +(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a) +(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b)) +(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a) +(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b)) +(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a)) +(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a)) +(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a)) +(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a)) +(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a) +(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b)) +(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b)) +(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a) +(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a)) +(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a)) +(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b)) +(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a)) +(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a)) +(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a)) +(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a)) +(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a)) +(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a)) +(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c)) +(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a)) +(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a)) +(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c)) +(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a)) +(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a)) +(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a)) +(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c)) +(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a)) +(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b)) +(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a)) +(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a)) +(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b)) +(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c)) +(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a)) +(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a)) +(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a)) +(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a)) +(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a)) +(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a)) +(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a)) +(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a)) +(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a)) +(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a)) +(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a)) +(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a)) +(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a)) +(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a) +(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a)) +(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a)) +(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a)) +(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a)) +(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a)) +(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a)) +(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a)) +(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a)) +(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a)) +(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a)) +(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a)) +(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a)) +(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b) +(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c) +(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c) +(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a) +(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a) +(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a) +(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b) +(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a)) +(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a)) +(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a) +(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a)) +(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a)) +(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a)) +(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a)) +(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a)) +(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a)) +(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a)) +(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b)) +(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a)) +(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b)) +(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a)) +(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b)) +(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a)) +(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b)) +(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a)) +(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b)) +(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a)) +(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a)) +(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a)) +(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a)) +(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a)) +(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b)) +(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a)) +(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a)) +(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a)) +(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b)) +(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a)) +(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b)) +(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a)) +(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a)) +(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a)) +(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b)) +(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a)) +(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a)) +(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a)) +(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a)) +(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a)) +(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a)) +(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a)) +(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a)) +(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a)) +(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a)) +(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a)) +(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a) +(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a)) +(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a)) +(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a)) +(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a)) +(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a)) +(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b)) +(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a) +(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a)) +(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a)) +(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a) +(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a)) +(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a)) +(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a)) +(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a) +(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a)) +(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a)) +(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a)) +(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b) +(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a)) +(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b)) +(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a) +(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b)) +(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a)) +(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b)) +(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a)) +(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a)) +(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a)) +(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a)) +(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a)) +(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a)) +(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a)) +(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a)) +(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a)) +(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a)) +(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b)) +(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a)) +(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b) +(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a)) +(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b)) +(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a) +(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a)) +(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a)) +(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a)) +(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a)) +(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b) +(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a)) +(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a)) +(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a)) +(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a) +(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a)) +(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a)) +(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a)) +(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a)) +(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a) +(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a)) +(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a)) +(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b)) +(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a)) +(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a)) +(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a)) +(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a) +(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b)) +(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a) +(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a)) +(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a)) +(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a) +(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a) +(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a)) +(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a)) +(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a) +(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a) +(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a) +(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b)) +(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b)) +(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a)) +(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a)) +(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a)) +(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a)) +(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a)) +(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a)) +(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a)) +(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b)) +(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a)) +(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b)) +(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a)) +(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b)) +(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a)) +(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b)) +(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a)) +(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b)) +(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a)) +(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a)) +(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b)) +(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c)) +(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b)) +(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b)) +(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b)) +(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a)) +(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a)) +(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a)) +(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a)) +(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a)) +(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a)) +(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b)) +(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a)) +(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a)) +(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a)) +(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a)) +(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a)) +(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b)) +(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a)) +(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b)) +(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a)) +(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b)) +(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a)) +(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b)) +(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a)) +(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b)) +(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a)) +(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b)) +(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a)) +(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b)) +(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a)) +(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b)) +(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a)) +(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c)) +(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c)) +(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a)) +(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a)) +(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c)) +(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c)) +(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a)) +(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a)) +(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a)) +(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a)) +(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a)) +(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a)) +(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a)) +(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a)) +(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a)) +(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a)) +(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a)) +(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a)) +(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a)) +(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a)) +(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a)) +(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a)) +(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a)) +(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a)) +(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a)) +(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a)) +(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a)) +(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a)) +(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a)) +(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a)) +(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a)) +(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a)) +(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a)) +(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a)) +(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a)) +(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a)) +(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a)) +(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a)) +(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a)) +(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a)) +(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a)) +(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c)) +(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a)) +(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a)) +(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a)) +(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a)) +(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a)) +(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a)) +(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a)) +(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a)) +(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c)) +(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a)) +(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c)) +(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a)) +(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a)) +(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a)) +(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a)) +(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a)) +(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a)) +(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a)) +(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a)) +(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a)) +(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a)) +(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a)) +(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a)) +(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a)) +(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a)) +(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a)) +(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c)) +(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a)) +(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a)) +(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b)) +(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a)) +(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a)) +(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c)) +(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a)) +(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a)) +(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b)) +(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a)) +(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a)) +(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a)) +(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a)) +(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a)) +(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a)) +(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a)) +(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a)) +(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a)) +(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a)) +(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a)) +(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a)) +(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a)) +(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a)) +(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a)) +(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a)) +(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a)) +(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a)) +(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a)) +(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a) +(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a)) +(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a)) +(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a)) +(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a)) +(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a)) +(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a)) +(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a)) +(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a) +(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a)) +(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a)) +(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a)) +(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a)) +(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a)) +(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a)) +(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a)) +(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a)) +(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a)) +(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a)) +(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a)) +(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a)) +(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a)) +(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a)) +(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a)) +(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a)) +(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a)) +(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c) +(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c) +(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a) +(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c) +(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a) +(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c) +(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b) +(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a)) +(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a)) +(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a)) +(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a)) +(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a)) +(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a)) +(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a)) +(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a)) +(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a)) +(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a)) +(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a)) +(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a)) +(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a)) +(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a)) +(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a)) +(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a)) +(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a)) +(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a)) +(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a)) +(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a)) +(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a)) +(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a)) +(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a)) +(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a)) +(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a)) +(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a)) +(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a)) +(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a)) +(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a)) +(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a)) +(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a)) +(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a)) +(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b) +(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a)) +(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a)) +(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a) +(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b) +(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a)) +(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a) +(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a) +(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a)) +(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a) +(* ?c (select ?b ?a ?a)) ==> (* ?c ?a) +(- ?c (select ?b ?a ?a)) ==> (- ?c ?a) +(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c) +(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b)) +(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a)) +(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c)) +(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b)) +(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a)) +(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d)) +(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b)) +(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a) +(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d)) +(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d)) +(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d)) +(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a) +(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b) +(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a)) +(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a) +(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a)) +(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a) +(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d)) +(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a) +(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b)) +(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a) +(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a)) +(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b) +(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a)) +(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a)) +(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a)) +(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c)) +(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d)) +(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a) +(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a)) +(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a)) +(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a)) +(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a)) +(max ?a (select ?c ?b ?b)) ==> (max ?b ?a) +(min ?c (select ?b ?a ?a)) ==> (min ?a ?c) +(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b)) +(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a)) +(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d)) +(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a)) diff --git a/jfp/baseline/enumo_trig.rules b/jfp/baseline/enumo_trig.rules new file mode 100644 index 00000000..66609ac7 --- /dev/null +++ b/jfp/baseline/enumo_trig.rules @@ -0,0 +1,33 @@ +(sin (/ PI 2)) ==> (cos 0) +(cos 0) ==> (sin (/ PI 2)) +(cos (* PI 2)) ==> (cos 0) +(cos 0) ==> (cos (* PI 2)) +(cos (/ PI 2)) ==> (tan PI) +(tan PI) ==> (cos (/ PI 2)) +(tan (* PI 2)) ==> (tan PI) +(tan PI) ==> (tan (* PI 2)) +(sin PI) ==> (sin (* PI 2)) +(sin (* PI 2)) ==> (sin PI) +(sin 0) ==> (sin PI) +(sin PI) ==> (sin 0) +(tan 0) ==> (tan PI) +(tan PI) ==> (tan 0) +0 ==> (tan PI) +(tan PI) ==> 0 +(sin PI) ==> (tan PI) +(tan PI) ==> (sin PI) +(- (cos ?a)) ==> (cos (- PI ?a)) +(cos (- PI ?a)) ==> (- (cos ?a)) +(sin ?a) ==> (sin (- PI ?a)) +(sin (- PI ?a)) ==> (sin ?a) +(- (sin ?a)) ==> (sin (- ?a)) +(sin (- ?a)) ==> (- (sin ?a)) +(cos (- ?a)) ==> (cos ?a) +(cos ?a) ==> (cos (- ?a)) +(sin ?a) ==> (cos (- (/ PI 2) ?a)) +(cos (- (/ PI 2) ?a)) ==> (sin ?a) +(sin (+ (/ PI 2) ?a)) ==> (cos ?a) +(cos ?a) ==> (sin (+ (/ PI 2) ?a)) +(- ?a ?a) ==> (- (- ?a ?a)) +(- (- ?a ?a)) ==> (- ?a ?a) +(+ ?b ?a) ==> (+ ?a ?b) diff --git a/jfp/cs1/exp/Enumo-LLM-1-derive.json b/jfp/cs1/exp/Enumo-LLM-1-derive.json new file mode 100644 index 00000000..bd6a8b7c --- /dev/null +++ b/jfp/cs1/exp/Enumo-LLM-1-derive.json @@ -0,0 +1,34 @@ +{ + "duration": { + "secs": 0, + "nanos": 336331208 + }, + "num_rules": 181, + "num_against": 22, + "can": [ + "(pow ?a 0) ==> 1", + "(pow 1 ?b) ==> 1", + "(pow ?a 2) ==> (* ?a ?a)", + "(* ?a ?a) ==> (pow ?a 2)", + "(log (exp ?x)) ==> ?x", + "?x ==> (log (exp ?x))", + "(exp (log ?x)) ==> ?x", + "?x ==> (exp (log ?x))", + "(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b))", + "(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b))", + "(pow ?x ?y) ==> (exp (* ?y (log ?x)))", + "(exp (* ?y (log ?x))) ==> (pow ?x ?y)", + "(exp (* ?a ?b)) ==> (pow (exp ?a) ?b)", + "(pow (exp ?a) ?b) ==> (exp (* ?a ?b))", + "(log (pow ?a ?b)) ==> (* ?b (log ?a))", + "(* ?b (log ?a)) ==> (log (pow ?a ?b))", + "(pow ?x (* ?y ?z)) ==> (pow (pow ?x ?y) ?z)", + "(pow (pow ?x ?y) ?z) ==> (pow ?x (* ?y ?z))" + ], + "cannot": [ + "(pow ?x -1) ==> (/ 1 ?x)", + "(/ 1 ?x) ==> (pow ?x -1)", + "(pow ?x (- ?y)) ==> (/ 1 (pow ?x ?y))", + "(/ 1 (pow ?x ?y)) ==> (pow ?x (- ?y))" + ] +} diff --git a/jfp/cs1/exp/Enumo-LLM-2-derive.json b/jfp/cs1/exp/Enumo-LLM-2-derive.json new file mode 100644 index 00000000..4f880383 --- /dev/null +++ b/jfp/cs1/exp/Enumo-LLM-2-derive.json @@ -0,0 +1,50 @@ +{ + "duration": { + "secs": 0, + "nanos": 674082791 + }, + "num_rules": 181, + "num_against": 38, + "can": [ + "(exp (- ?a ?b)) ==> (/ (exp ?a) (exp ?b))", + "(/ (exp ?a) (exp ?b)) ==> (exp (- ?a ?b))", + "(pow ?x (+ ?a ?b)) ==> (* (pow ?x ?a) (pow ?x ?b))", + "(* (pow ?x ?a) (pow ?x ?b)) ==> (pow ?x (+ ?a ?b))", + "(pow ?a (* ?b ?c)) ==> (pow (pow ?a ?b) ?c)", + "(pow (pow ?a ?b) ?c) ==> (pow ?a (* ?b ?c))", + "(pow ?a 0) ==> 1", + "(pow 1 ?b) ==> 1", + "(pow ?a 2) ==> (* ?a ?a)", + "(* ?a ?a) ==> (pow ?a 2)", + "(log (exp ?x)) ==> ?x", + "?x ==> (log (exp ?x))", + "(exp (log ?x)) ==> ?x", + "?x ==> (exp (log ?x))", + "(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b))", + "(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b))", + "(pow ?x ?y) ==> (exp (* ?y (log ?x)))", + "(exp (* ?y (log ?x))) ==> (pow ?x ?y)", + "(exp (* ?a ?b)) ==> (pow (exp ?a) ?b)", + "(pow (exp ?a) ?b) ==> (exp (* ?a ?b))", + "(log (pow ?a ?b)) ==> (* ?b (log ?a))", + "(* ?b (log ?a)) ==> (log (pow ?a ?b))", + "(pow ?x (* ?y ?z)) ==> (pow (pow ?x ?y) ?z)", + "(pow (pow ?x ?y) ?z) ==> (pow ?x (* ?y ?z))" + ], + "cannot": [ + "(pow 0 ?y) ==> 0", + "(pow ?x 3) ==> (* ?x (* ?x ?x))", + "(* ?x (* ?x ?x)) ==> (pow ?x 3)", + "(pow e ?x) ==> (exp ?x)", + "(exp ?x) ==> (pow e ?x)", + "(pow ?x (/ ?a ?b)) ==> (pow (pow ?x ?a) (/ 1 ?b))", + "(pow (pow ?x ?a) (/ 1 ?b)) ==> (pow ?x (/ ?a ?b))", + "(/ (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (- ?b ?c))", + "(pow ?a (- ?b ?c)) ==> (/ (pow ?a ?b) (pow ?a ?c))", + "(* (pow ?x ?a) (pow ?x ?b)) ==> (pow ?x (+ ?b ?b))", + "(pow ?x -1) ==> (/ 1 ?x)", + "(/ 1 ?x) ==> (pow ?x -1)", + "(pow ?x (- ?y)) ==> (/ 1 (pow ?x ?y))", + "(/ 1 (pow ?x ?y)) ==> (pow ?x (- ?y))" + ] +} diff --git a/jfp/cs1/exp/LLM-1-RAT-Enumo-derive.json b/jfp/cs1/exp/LLM-1-RAT-Enumo-derive.json new file mode 100644 index 00000000..07536149 --- /dev/null +++ b/jfp/cs1/exp/LLM-1-RAT-Enumo-derive.json @@ -0,0 +1,52 @@ +{ + "duration": { + "secs": 0, + "nanos": 433656791 + }, + "num_rules": 163, + "num_against": 40, + "can": [ + "(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b))", + "(exp (- ?a)) ==> (/ 1 (exp ?a))", + "(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b))", + "(/ 1 (exp ?a)) ==> (exp (- ?a))", + "(exp 0) ==> 1", + "(log (exp ?a)) ==> ?a", + "(exp (log ?a)) ==> ?a", + "(pow 1 ?a) ==> 1", + "?a ==> (pow ?a 1)", + "(pow ?a 1) ==> ?a", + "(* (pow ?b ?c) (pow ?b ?a)) ==> (pow ?b (+ ?a ?c))", + "(pow ?b (+ ?a ?c)) ==> (* (pow ?b ?c) (pow ?b ?a))", + "(pow (* ?c ?b) ?a) ==> (* (pow ?b ?a) (pow ?c ?a))", + "(* (pow ?b ?a) (pow ?c ?a)) ==> (pow (* ?c ?b) ?a)", + "(pow (exp ?c) (* ?b ?a)) ==> (pow (exp ?a) (* ?c ?b))", + "(pow (exp ?a) (* ?c ?b)) ==> (pow (exp ?c) (* ?b ?a))", + "(* ?c (log (pow ?b ?a))) ==> (* (log ?b) (* ?a ?c))", + "(* (log ?b) (* ?a ?c)) ==> (* ?c (log (pow ?b ?a)))", + "(pow (pow ?c ?b) (log ?a)) ==> (pow (pow ?a ?b) (log ?c))", + "(pow (pow ?a ?b) (log ?c)) ==> (pow (pow ?c ?b) (log ?a))", + "(pow ?c (* ?b ?a)) ==> (pow (pow ?c ?b) ?a)", + "(pow (pow ?c ?b) ?a) ==> (pow ?c (* ?b ?a))", + "(pow (pow ?c ?b) ?a) ==> (pow (pow ?c ?a) ?b)", + "(pow (pow ?c ?a) ?b) ==> (pow (pow ?c ?b) ?a)" + ], + "cannot": [ + "(pow 1 ?a) ==> (cbrt 1)", + "(pow 1 ?a) ==> (sqrt 1)", + "(* 1/2 (log ?a)) ==> (log (sqrt ?a))", + "(log (sqrt ?a)) ==> (* 1/2 (log ?a))", + "(* 1/3 (log ?a)) ==> (log (cbrt ?a))", + "(log (cbrt ?a)) ==> (* 1/3 (log ?a))", + "(sqrt (cbrt ?a)) ==> (cbrt (sqrt ?a))", + "(cbrt (sqrt ?a)) ==> (sqrt (cbrt ?a))", + "(* (cbrt ?b) (cbrt ?a)) ==> (cbrt (* ?a ?b))", + "(cbrt (* ?a ?b)) ==> (* (cbrt ?b) (cbrt ?a))", + "(* (sqrt ?b) (sqrt ?a)) ==> (sqrt (* ?b ?a))", + "(sqrt (* ?b ?a)) ==> (* (sqrt ?b) (sqrt ?a))", + "(pow (sqrt ?b) ?a) ==> (sqrt (pow ?b ?a))", + "(sqrt (pow ?b ?a)) ==> (pow (sqrt ?b) ?a)", + "(cbrt (pow ?b ?a)) ==> (pow (cbrt ?b) ?a)", + "(pow (cbrt ?b) ?a) ==> (cbrt (pow ?b ?a))" + ] +} diff --git a/jfp/cs1/exp/LLM-1-RAT-Herbie-derive.json b/jfp/cs1/exp/LLM-1-RAT-Herbie-derive.json new file mode 100644 index 00000000..39b43a18 --- /dev/null +++ b/jfp/cs1/exp/LLM-1-RAT-Herbie-derive.json @@ -0,0 +1,87 @@ +{ + "duration": { + "secs": 1, + "nanos": 286280083 + }, + "num_rules": 163, + "num_against": 75, + "can": [ + "(+ (log ?a) (log ?b)) ==> (log (* ?a ?b))", + "(log (* ?a ?b)) ==> (+ (log ?a) (log ?b))", + "(log (pow ?a ?b)) ==> (* ?b (log ?a))", + "(/ 1 ?a) ==> (pow ?a -1)", + "(pow 0 ?a) ==> 0", + "(pow (exp ?a) ?b) ==> (exp (* ?a ?b))", + "(pow ?a ?b) ==> (exp (* (log ?a) ?b))", + "(* (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (+ ?b ?c))", + "(* (pow ?a ?b) (pow ?c ?b)) ==> (pow (* ?a ?c) ?b)", + "(pow (pow ?a ?b) ?c) ==> (pow ?a (* ?b ?c))", + "(pow ?a (* ?b ?c)) ==> (pow (pow ?a ?b) ?c)", + "(pow ?a (+ ?b ?c)) ==> (* (pow ?a ?b) (pow ?a ?c))", + "(pow (* ?a ?b) ?c) ==> (* (pow ?a ?c) (pow ?b ?c))", + "(* ?a ?a) ==> (pow ?a 2)", + "(exp (* (log ?a) ?b)) ==> (pow ?a ?b)", + "(* (pow ?a ?b) ?a) ==> (pow ?a (+ ?b 1))", + "(pow ?a 2) ==> (* ?a ?a)", + "?a ==> (pow ?a 1)", + "(pow ?a 0) ==> 1", + "(pow 1 ?a) ==> 1", + "(pow ?a 1) ==> ?a", + "(pow ?a -1) ==> (/ 1 ?a)", + "(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b))", + "(exp (* ?a ?b)) ==> (pow (exp ?a) ?b)", + "(exp (* ?a 2)) ==> (* (exp ?a) (exp ?a))", + "(exp (* ?a 3)) ==> (pow (exp ?a) 3)", + "(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b))", + "(exp 0) ==> 1", + "1 ==> (exp 0)", + "(exp (log ?a)) ==> ?a", + "(log (exp ?a)) ==> ?a", + "?a ==> (exp (log ?a))", + "?a ==> (log (exp ?a))", + "(pow (* ?a ?b) 3) ==> (* (pow ?a 3) (pow ?b 3))", + "(pow ?a ?b) ==> (* (pow ?a (/ ?b 2)) (pow ?a (/ ?b 2)))", + "(* (pow ?a ?b) (pow ?a ?b)) ==> (pow ?a (* 2 ?b))" + ], + "cannot": [ + "(- (log ?a) (log ?b)) ==> (log (/ ?a ?b))", + "(log (/ ?a ?b)) ==> (- (log ?a) (log ?b))", + "(/ (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (- ?b ?c))", + "(pow ?a (- ?b ?c)) ==> (/ (pow ?a ?b) (pow ?a ?c))", + "(sqrt ?a) ==> (pow ?a 1/2)", + "(cbrt ?a) ==> (pow ?a 1/3)", + "(* (* ?a ?a) ?a) ==> (pow ?a 3)", + "(pow ?a 1/2) ==> (sqrt ?a)", + "(pow ?a 3) ==> (* (* ?a ?a) ?a)", + "(pow ?a 1/3) ==> (cbrt ?a)", + "(/ (exp ?a) (exp ?b)) ==> (exp (- ?a ?b))", + "(exp (/ ?a 2)) ==> (sqrt (exp ?a))", + "(exp (/ ?a 3)) ==> (cbrt (exp ?a))", + "(exp (- ?a ?b)) ==> (/ (exp ?a) (exp ?b))", + "(* ?a (* ?a ?a)) ==> (pow ?a 3)", + "(cbrt (* ?a ?b)) ==> (* (cbrt ?a) (cbrt ?b))", + "(cbrt (/ ?a ?b)) ==> (/ (cbrt ?a) (cbrt ?b))", + "(* (cbrt ?a) (cbrt ?b)) ==> (cbrt (* ?a ?b))", + "(/ (cbrt ?a) (cbrt ?b)) ==> (cbrt (/ ?a ?b))", + "?a ==> (* (* (cbrt ?a) (cbrt ?a)) (cbrt ?a))", + "?a ==> (cbrt (* (* ?a ?a) ?a))", + "(pow (/ ?a ?b) 3) ==> (/ (pow ?a 3) (pow ?b 3))", + "(pow ?a 3) ==> (* ?a (* ?a ?a))", + "(pow (cbrt ?a) 3) ==> ?a", + "(cbrt (pow ?a 3)) ==> ?a", + "(* (* (cbrt ?a) (cbrt ?a)) (cbrt ?a)) ==> ?a", + "(* (cbrt ?a) (* (cbrt ?a) (cbrt ?a))) ==> ?a", + "(sqrt (* ?a ?b)) ==> (* (sqrt ?a) (sqrt ?b))", + "(sqrt (/ ?a ?b)) ==> (/ (sqrt ?a) (sqrt ?b))", + "(sqrt (pow ?a ?b)) ==> (pow ?a (/ ?b 2))", + "(pow (sqrt ?a) ?b) ==> (pow ?a (/ ?b 2))", + "(* (sqrt ?a) (sqrt ?b)) ==> (sqrt (* ?a ?b))", + "(/ (sqrt ?a) (sqrt ?b)) ==> (sqrt (/ ?a ?b))", + "?a ==> (* (sqrt ?a) (sqrt ?a))", + "(* (sqrt ?a) (sqrt ?a)) ==> ?a", + "(+ (pow ?a 3) (pow ?b 3)) ==> (* (+ (* ?a ?a) (- (* ?b ?b) (* ?a ?b))) (+ ?a ?b))", + "(- (pow ?a 3) (pow ?b 3)) ==> (* (+ (* ?a ?a) (+ (* ?b ?b) (* ?a ?b))) (- ?a ?b))", + "(+ ?a ?b) ==> (/ (+ (pow ?a 3) (pow ?b 3)) (+ (* ?a ?a) (- (* ?b ?b) (* ?a ?b))))", + "(- ?a ?b) ==> (/ (- (pow ?a 3) (pow ?b 3)) (+ (* ?a ?a) (+ (* ?b ?b) (* ?a ?b))))" + ] +} diff --git a/jfp/cs1/exp/LLM-1.rules b/jfp/cs1/exp/LLM-1.rules new file mode 100644 index 00000000..4c9702cd --- /dev/null +++ b/jfp/cs1/exp/LLM-1.rules @@ -0,0 +1,22 @@ +(pow ?x -1) ==> (/ 1 ?x) +(/ 1 ?x) ==> (pow ?x -1) +(pow ?a 0) ==> 1 +(pow 1 ?b) ==> 1 +(pow ?a 2) ==> (* ?a ?a) +(* ?a ?a) ==> (pow ?a 2) +(log (exp ?x)) ==> ?x +?x ==> (log (exp ?x)) +(exp (log ?x)) ==> ?x +?x ==> (exp (log ?x)) +(pow ?x (- ?y)) ==> (/ 1 (pow ?x ?y)) +(/ 1 (pow ?x ?y)) ==> (pow ?x (- ?y)) +(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b)) +(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b)) +(pow ?x ?y) ==> (exp (* ?y (log ?x))) +(exp (* ?y (log ?x))) ==> (pow ?x ?y) +(exp (* ?a ?b)) ==> (pow (exp ?a) ?b) +(pow (exp ?a) ?b) ==> (exp (* ?a ?b)) +(log (pow ?a ?b)) ==> (* ?b (log ?a)) +(* ?b (log ?a)) ==> (log (pow ?a ?b)) +(pow ?x (* ?y ?z)) ==> (pow (pow ?x ?y) ?z) +(pow (pow ?x ?y) ?z) ==> (pow ?x (* ?y ?z)) diff --git a/jfp/cs1/exp/LLM-2-RAT-Enumo-derive.json b/jfp/cs1/exp/LLM-2-RAT-Enumo-derive.json new file mode 100644 index 00000000..e720b1a4 --- /dev/null +++ b/jfp/cs1/exp/LLM-2-RAT-Enumo-derive.json @@ -0,0 +1,51 @@ +{ + "duration": { + "secs": 0, + "nanos": 105263000 + }, + "num_rules": 179, + "num_against": 40, + "can": [ + "(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b))", + "(exp (- ?a)) ==> (/ 1 (exp ?a))", + "(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b))", + "(/ 1 (exp ?a)) ==> (exp (- ?a))", + "(exp 0) ==> 1", + "(log (exp ?a)) ==> ?a", + "(exp (log ?a)) ==> ?a", + "(pow 1 ?a) ==> (cbrt 1)", + "(pow 1 ?a) ==> (sqrt 1)", + "(pow 1 ?a) ==> 1", + "?a ==> (pow ?a 1)", + "(pow ?a 1) ==> ?a", + "(* 1/2 (log ?a)) ==> (log (sqrt ?a))", + "(log (sqrt ?a)) ==> (* 1/2 (log ?a))", + "(* 1/3 (log ?a)) ==> (log (cbrt ?a))", + "(log (cbrt ?a)) ==> (* 1/3 (log ?a))", + "(sqrt (cbrt ?a)) ==> (cbrt (sqrt ?a))", + "(cbrt (sqrt ?a)) ==> (sqrt (cbrt ?a))", + "(* (cbrt ?b) (cbrt ?a)) ==> (cbrt (* ?a ?b))", + "(cbrt (* ?a ?b)) ==> (* (cbrt ?b) (cbrt ?a))", + "(* (sqrt ?b) (sqrt ?a)) ==> (sqrt (* ?b ?a))", + "(sqrt (* ?b ?a)) ==> (* (sqrt ?b) (sqrt ?a))", + "(pow (sqrt ?b) ?a) ==> (sqrt (pow ?b ?a))", + "(sqrt (pow ?b ?a)) ==> (pow (sqrt ?b) ?a)", + "(cbrt (pow ?b ?a)) ==> (pow (cbrt ?b) ?a)", + "(pow (cbrt ?b) ?a) ==> (cbrt (pow ?b ?a))", + "(* (pow ?b ?c) (pow ?b ?a)) ==> (pow ?b (+ ?a ?c))", + "(pow ?b (+ ?a ?c)) ==> (* (pow ?b ?c) (pow ?b ?a))", + "(pow (* ?c ?b) ?a) ==> (* (pow ?b ?a) (pow ?c ?a))", + "(* (pow ?b ?a) (pow ?c ?a)) ==> (pow (* ?c ?b) ?a)", + "(pow (exp ?c) (* ?b ?a)) ==> (pow (exp ?a) (* ?c ?b))", + "(pow (exp ?a) (* ?c ?b)) ==> (pow (exp ?c) (* ?b ?a))", + "(* ?c (log (pow ?b ?a))) ==> (* (log ?b) (* ?a ?c))", + "(* (log ?b) (* ?a ?c)) ==> (* ?c (log (pow ?b ?a)))", + "(pow (pow ?c ?b) (log ?a)) ==> (pow (pow ?a ?b) (log ?c))", + "(pow (pow ?a ?b) (log ?c)) ==> (pow (pow ?c ?b) (log ?a))", + "(pow ?c (* ?b ?a)) ==> (pow (pow ?c ?b) ?a)", + "(pow (pow ?c ?b) ?a) ==> (pow ?c (* ?b ?a))", + "(pow (pow ?c ?b) ?a) ==> (pow (pow ?c ?a) ?b)", + "(pow (pow ?c ?a) ?b) ==> (pow (pow ?c ?b) ?a)" + ], + "cannot": [] +} diff --git a/jfp/cs1/exp/LLM-2-RAT-Herbie-derive.json b/jfp/cs1/exp/LLM-2-RAT-Herbie-derive.json new file mode 100644 index 00000000..5b55ca1e --- /dev/null +++ b/jfp/cs1/exp/LLM-2-RAT-Herbie-derive.json @@ -0,0 +1,86 @@ +{ + "duration": { + "secs": 0, + "nanos": 119834208 + }, + "num_rules": 179, + "num_against": 75, + "can": [ + "(+ (log ?a) (log ?b)) ==> (log (* ?a ?b))", + "(- (log ?a) (log ?b)) ==> (log (/ ?a ?b))", + "(log (* ?a ?b)) ==> (+ (log ?a) (log ?b))", + "(log (/ ?a ?b)) ==> (- (log ?a) (log ?b))", + "(log (pow ?a ?b)) ==> (* ?b (log ?a))", + "(/ 1 ?a) ==> (pow ?a -1)", + "(pow 0 ?a) ==> 0", + "(pow (exp ?a) ?b) ==> (exp (* ?a ?b))", + "(pow ?a ?b) ==> (exp (* (log ?a) ?b))", + "(* (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (+ ?b ?c))", + "(* (pow ?a ?b) (pow ?c ?b)) ==> (pow (* ?a ?c) ?b)", + "(pow (pow ?a ?b) ?c) ==> (pow ?a (* ?b ?c))", + "(/ (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (- ?b ?c))", + "(pow ?a (- ?b ?c)) ==> (/ (pow ?a ?b) (pow ?a ?c))", + "(pow ?a (* ?b ?c)) ==> (pow (pow ?a ?b) ?c)", + "(pow ?a (+ ?b ?c)) ==> (* (pow ?a ?b) (pow ?a ?c))", + "(pow (* ?a ?b) ?c) ==> (* (pow ?a ?c) (pow ?b ?c))", + "(sqrt ?a) ==> (pow ?a 1/2)", + "(* ?a ?a) ==> (pow ?a 2)", + "(cbrt ?a) ==> (pow ?a 1/3)", + "(* (* ?a ?a) ?a) ==> (pow ?a 3)", + "(exp (* (log ?a) ?b)) ==> (pow ?a ?b)", + "(* (pow ?a ?b) ?a) ==> (pow ?a (+ ?b 1))", + "(pow ?a 1/2) ==> (sqrt ?a)", + "(pow ?a 2) ==> (* ?a ?a)", + "(pow ?a 3) ==> (* (* ?a ?a) ?a)", + "(pow ?a 1/3) ==> (cbrt ?a)", + "?a ==> (pow ?a 1)", + "(pow ?a 0) ==> 1", + "(pow 1 ?a) ==> 1", + "(pow ?a 1) ==> ?a", + "(pow ?a -1) ==> (/ 1 ?a)", + "(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b))", + "(/ (exp ?a) (exp ?b)) ==> (exp (- ?a ?b))", + "(exp (* ?a ?b)) ==> (pow (exp ?a) ?b)", + "(exp (/ ?a 2)) ==> (sqrt (exp ?a))", + "(exp (/ ?a 3)) ==> (cbrt (exp ?a))", + "(exp (* ?a 2)) ==> (* (exp ?a) (exp ?a))", + "(exp (* ?a 3)) ==> (pow (exp ?a) 3)", + "(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b))", + "(exp (- ?a ?b)) ==> (/ (exp ?a) (exp ?b))", + "(exp 0) ==> 1", + "1 ==> (exp 0)", + "(exp (log ?a)) ==> ?a", + "(log (exp ?a)) ==> ?a", + "?a ==> (exp (log ?a))", + "?a ==> (log (exp ?a))", + "(* ?a (* ?a ?a)) ==> (pow ?a 3)", + "(cbrt (* ?a ?b)) ==> (* (cbrt ?a) (cbrt ?b))", + "(cbrt (/ ?a ?b)) ==> (/ (cbrt ?a) (cbrt ?b))", + "(* (cbrt ?a) (cbrt ?b)) ==> (cbrt (* ?a ?b))", + "(/ (cbrt ?a) (cbrt ?b)) ==> (cbrt (/ ?a ?b))", + "?a ==> (* (* (cbrt ?a) (cbrt ?a)) (cbrt ?a))", + "?a ==> (cbrt (* (* ?a ?a) ?a))", + "(pow (* ?a ?b) 3) ==> (* (pow ?a 3) (pow ?b 3))", + "(pow (/ ?a ?b) 3) ==> (/ (pow ?a 3) (pow ?b 3))", + "(pow ?a 3) ==> (* ?a (* ?a ?a))", + "(pow (cbrt ?a) 3) ==> ?a", + "(cbrt (pow ?a 3)) ==> ?a", + "(* (* (cbrt ?a) (cbrt ?a)) (cbrt ?a)) ==> ?a", + "(* (cbrt ?a) (* (cbrt ?a) (cbrt ?a))) ==> ?a", + "(sqrt (* ?a ?b)) ==> (* (sqrt ?a) (sqrt ?b))", + "(sqrt (/ ?a ?b)) ==> (/ (sqrt ?a) (sqrt ?b))", + "(sqrt (pow ?a ?b)) ==> (pow ?a (/ ?b 2))", + "(pow (sqrt ?a) ?b) ==> (pow ?a (/ ?b 2))", + "(* (sqrt ?a) (sqrt ?b)) ==> (sqrt (* ?a ?b))", + "(/ (sqrt ?a) (sqrt ?b)) ==> (sqrt (/ ?a ?b))", + "?a ==> (* (sqrt ?a) (sqrt ?a))", + "(* (sqrt ?a) (sqrt ?a)) ==> ?a", + "(+ (pow ?a 3) (pow ?b 3)) ==> (* (+ (* ?a ?a) (- (* ?b ?b) (* ?a ?b))) (+ ?a ?b))", + "(- (pow ?a 3) (pow ?b 3)) ==> (* (+ (* ?a ?a) (+ (* ?b ?b) (* ?a ?b))) (- ?a ?b))", + "(+ ?a ?b) ==> (/ (+ (pow ?a 3) (pow ?b 3)) (+ (* ?a ?a) (- (* ?b ?b) (* ?a ?b))))", + "(- ?a ?b) ==> (/ (- (pow ?a 3) (pow ?b 3)) (+ (* ?a ?a) (+ (* ?b ?b) (* ?a ?b))))", + "(pow ?a ?b) ==> (* (pow ?a (/ ?b 2)) (pow ?a (/ ?b 2)))", + "(* (pow ?a ?b) (pow ?a ?b)) ==> (pow ?a (* 2 ?b))" + ], + "cannot": [] +} diff --git a/jfp/cs1/exp/LLM-2.rules b/jfp/cs1/exp/LLM-2.rules new file mode 100644 index 00000000..66064a01 --- /dev/null +++ b/jfp/cs1/exp/LLM-2.rules @@ -0,0 +1,38 @@ +(pow ?x -1) ==> (/ 1 ?x) +(/ 1 ?x) ==> (pow ?x -1) +(pow ?a 0) ==> 1 +(pow 1 ?b) ==> 1 +(pow ?a 2) ==> (* ?a ?a) +(* ?a ?a) ==> (pow ?a 2) +(log (exp ?x)) ==> ?x +?x ==> (log (exp ?x)) +(exp (log ?x)) ==> ?x +?x ==> (exp (log ?x)) +(pow ?x (- ?y)) ==> (/ 1 (pow ?x ?y)) +(/ 1 (pow ?x ?y)) ==> (pow ?x (- ?y)) +(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b)) +(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b)) +(pow ?x ?y) ==> (exp (* ?y (log ?x))) +(exp (* ?y (log ?x))) ==> (pow ?x ?y) +(exp (* ?a ?b)) ==> (pow (exp ?a) ?b) +(pow (exp ?a) ?b) ==> (exp (* ?a ?b)) +(log (pow ?a ?b)) ==> (* ?b (log ?a)) +(* ?b (log ?a)) ==> (log (pow ?a ?b)) +(pow ?x (* ?y ?z)) ==> (pow (pow ?x ?y) ?z) +(pow (pow ?x ?y) ?z) ==> (pow ?x (* ?y ?z)) +(pow 0 ?y) ==> 0 +(pow ?x 3) ==> (* ?x (* ?x ?x)) +(* ?x (* ?x ?x)) ==> (pow ?x 3) +(pow e ?x) ==> (exp ?x) +(exp ?x) ==> (pow e ?x) +(exp (- ?a ?b)) ==> (/ (exp ?a) (exp ?b)) +(/ (exp ?a) (exp ?b)) ==> (exp (- ?a ?b)) +(pow ?x (/ ?a ?b)) ==> (pow (pow ?x ?a) (/ 1 ?b)) +(pow (pow ?x ?a) (/ 1 ?b)) ==> (pow ?x (/ ?a ?b)) +(/ (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (- ?b ?c)) +(pow ?a (- ?b ?c)) ==> (/ (pow ?a ?b) (pow ?a ?c)) +(pow ?x (+ ?a ?b)) ==> (* (pow ?x ?a) (pow ?x ?b)) +(* (pow ?x ?a) (pow ?x ?b)) ==> (pow ?x (+ ?a ?b)) +(* (pow ?x ?a) (pow ?x ?b)) ==> (pow ?x (+ ?b ?b)) +(pow ?a (* ?b ?c)) ==> (pow (pow ?a ?b) ?c) +(pow (pow ?a ?b) ?c) ==> (pow ?a (* ?b ?c)) diff --git a/jfp/cs1/exp/candidates.rules b/jfp/cs1/exp/candidates.rules new file mode 100644 index 00000000..11189f34 --- /dev/null +++ b/jfp/cs1/exp/candidates.rules @@ -0,0 +1,104 @@ +(exp 0) ==> 1 +1 ==> (exp 0) +(exp 1) ==> E +E ==> (exp 1) +(log (exp ?x)) ==> ?x +?x ==> (log (exp ?x)) +(exp (log ?x)) ==> ?x +?x ==> (exp (log ?x)) +(pow ?x 1) ==> ?x +?x ==> (pow ?x 1) +(pow ?x 0) ==> 1 +(pow 1 ?x) ==> 1 +(pow ?x ?x) ==> (pow ?x 2) +(pow ?x 2) ==> (pow ?x ?x) +(pow ?x (+ ?y ?z)) ==> (* (pow ?x ?y) (pow ?x ?z)) +(* (pow ?x ?y) (pow ?x ?z)) ==> (pow ?x (+ ?y ?z)) +(pow ?x (- ?y ?z)) ==> (/ (pow ?x ?y) (pow ?x ?z)) +(/ (pow ?x ?y) (pow ?x ?z)) ==> (pow ?x (- ?y ?z)) +(pow ?x (* ?y ?z)) ==> (pow (pow ?x ?y) ?z) +(pow (pow ?x ?y) ?z) ==> (pow ?x (* ?y ?z)) +(pow (* ?x ?y) ?z) ==> (* (pow ?x ?z) (pow ?y ?z)) +(* (pow ?x ?z) (pow ?y ?z)) ==> (pow (* ?x ?y) ?z) +(sqrt ?x) ==> (pow ?x 0.5) +(pow ?x 0.5) ==> (sqrt ?x) +(cbrt ?x) ==> (pow ?x (/ 1 3)) +(pow ?x (/ 1 3)) ==> (cbrt ?x) +(pow ?x (/ 1 ?y)) ==> (pow ?x (- ?y)) +(pow ?x (- ?y)) ==> (pow ?x (/ 1 ?y)) +(log (* ?x ?y)) ==> (+ (log ?x) (log ?y)) +(+ (log ?x) (log ?y)) ==> (log (* ?x ?y)) +(log (/ ?x ?y)) ==> (- (log ?x) (log ?y)) +(- (log ?x) (log ?y)) ==> (log (/ ?x ?y)) +(log (pow ?x ?y)) ==> (* ?y (log ?x)) +(* ?y (log ?x)) ==> (log (pow ?x ?y)) +(exp (+ ?x ?y)) ==> (* (exp ?x) (exp ?y)) +(* (exp ?x) (exp ?y)) ==> (exp (+ ?x ?y)) +(exp (- ?x ?y)) ==> (/ (exp ?x) (exp ?y)) +(/ (exp ?x) (exp ?y)) ==> (exp (- ?x ?y)) +(exp (* ?x ?y)) ==> (pow (exp ?x) ?y) +(pow (exp ?x) ?y) ==> (exp (* ?x ?y)) +(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b)) +(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b)) +(exp (- ?a ?b)) ==> (/ (exp ?a) (exp ?b)) +(/ (exp ?a) (exp ?b)) ==> (exp (- ?a ?b)) +(exp (* ?a ?b)) ==> (pow (exp ?a) ?b) +(pow (exp ?a) ?b) ==> (exp (* ?a ?b)) +(exp (/ ?a ?b)) ==> (pow (exp ?a) (/ 1 ?b)) +(pow (exp ?a) (/ 1 ?b)) ==> (exp (/ ?a ?b)) +(log (* ?a ?b)) ==> (+ (log ?a) (log ?b)) +(+ (log ?a) (log ?b)) ==> (log (* ?a ?b)) +(log (/ ?a ?b)) ==> (- (log ?a) (log ?b)) +(- (log ?a) (log ?b)) ==> (log (/ ?a ?b)) +(log (pow ?a ?b)) ==> (* ?b (log ?a)) +(* ?b (log ?a)) ==> (log (pow ?a ?b)) +(sqrt ?x) ==> (pow ?x (/ 1 2)) +(pow ?x (/ 1 2)) ==> (sqrt ?x) +(pow ?a 0) ==> 1 +(pow ?a 1) ==> ?a +?a ==> (pow ?a 1) +(pow 1 ?b) ==> 1 +(pow 0 ?b) ==> 0 +(pow ?a 2) ==> (* ?a ?a) +(* ?a ?a) ==> (pow ?a 2) +(pow ?a (+ ?b 1)) ==> (* (pow ?a ?b) ?a) +(* (pow ?a ?b) ?a) ==> (pow ?a (+ ?b 1)) +(pow ?x (* ?y ?z)) ==> pow +(pow (pow ?x ?y) ?z) ==> pow +(pow 0 ?x) ==> 0 +(pow ?x (- ?y)) ==> (/ 1 (pow ?x ?y)) +(/ 1 (pow ?x ?y)) ==> (pow ?x (- ?y)) +(sqrt (pow ?x 2)) ==> (abs ?x) +(abs ?x) ==> (sqrt (pow ?x 2)) +(sqrt (* ?x ?y)) ==> (* (sqrt ?x) (sqrt ?y)) +(* (sqrt ?x) (sqrt ?y)) ==> (sqrt (* ?x ?y)) +(sqrt (/ ?x ?y)) ==> (/ (sqrt ?x) (sqrt ?y)) +(/ (sqrt ?x) (sqrt ?y)) ==> (sqrt (/ ?x ?y)) +(sqrt (sqrt ?x)) ==> (pow ?x 0.25) +(pow ?x 0.25) ==> (sqrt (sqrt ?x)) +(cbrt (* ?x ?y)) ==> (* (cbrt ?x) (cbrt ?y)) +(* (cbrt ?x) (cbrt ?y)) ==> (cbrt (* ?x ?y)) +(cbrt (/ ?x ?y)) ==> (/ (cbrt ?x) (cbrt ?y)) +(/ (cbrt ?x) (cbrt ?y)) ==> (cbrt (/ ?x ?y)) +(cbrt (pow ?x 3)) ==> (abs ?x) +(abs ?x) ==> (cbrt (pow ?x 3)) +(cbrt (cbrt ?x)) ==> (pow ?x (/ 1 9)) +(pow ?x (/ 1 9)) ==> (cbrt (cbrt ?x)) +(log 1) ==> 0 +0 ==> (log 1) +(log (sqrt ?x)) ==> (/ (log ?x) 2) +(/ (log ?x) 2) ==> (log (sqrt ?x)) +(log (cbrt ?x)) ==> (/ (log ?x) 3) +(/ (log ?x) 3) ==> (log (cbrt ?x)) +(pow ?x -1) ==> (/ 1 ?x) +(/ 1 ?x) ==> (pow ?x -1) +(exp (log 1)) ==> 1 +1 ==> (exp (log 1)) +(log (exp 0)) ==> 0 +0 ==> (log (exp 0)) +(pow (/ ?x ?y) ?z) ==> (/ (pow ?x ?z) (pow ?y ?z)) +(/ (pow ?x ?z) (pow ?y ?z)) ==> (pow (/ ?x ?y) ?z) +(exp (* ?x (log ?y))) ==> (pow ?y ?x) +(pow ?y ?x) ==> (exp (* ?x (log ?y))) +(pow ?x ?y) ==> (exp (* ?y (log ?x))) +(exp (* ?y (log ?x))) ==> (pow ?x ?y) diff --git a/jfp/cs1/exp/reprompted-candidates.rules b/jfp/cs1/exp/reprompted-candidates.rules new file mode 100644 index 00000000..522428d6 --- /dev/null +++ b/jfp/cs1/exp/reprompted-candidates.rules @@ -0,0 +1,53 @@ +(log (* ?a ?b)) ==> (+ (log ?a) (log ?b)) +(+ (log ?a) (log ?b)) ==> (log (* ?a ?b)) +(log (/ ?a ?b)) ==> (- (log ?a) (log ?b)) +(- (log ?a) (log ?b)) ==> (log (/ ?a ?b)) +(pow ?a (+ ?b ?c)) ==> (* (pow ?a ?b) (pow ?a ?c)) +(* (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (+ ?b ?c)) +(/ (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (- ?b ?c)) +(pow ?a (- ?b ?c)) ==> (/ (pow ?a ?b) (pow ?a ?c)) +(pow ?a 1) ==> ?a +?a ==> (pow ?a 1) +(pow ?x 3) ==> (* ?x (* ?x ?x)) +(* ?x (* ?x ?x)) ==> (pow ?x 3) +(log 1) ==> 0 +0 ==> (log 1) +(exp 0) ==> 1 +1 ==> (exp 0) +(log (exp 0)) ==> 0 +0 ==> (log (exp 0)) +(log (exp 1)) ==> 1 +1 ==> (log (exp 1)) +(exp (log 1)) ==> 1 +1 ==> (exp (log 1)) +(exp (+ ?a 0)) ==> (exp ?a) +(exp ?a) ==> (exp (+ ?a 0)) +(pow ?x 0) ==> 1 +(pow (exp ?a) 1) ==> (exp ?a) +(exp ?a) ==> (pow (exp ?a) 1) +(pow 0 ?y) ==> 0 +(pow 0 0) ==> 1 +1 ==> (pow 0 0) +(pow ?x 1) ==> ?x +?x ==> (pow ?x 1) +(pow ?a (* ?b ?c)) ==> (pow (pow ?a ?b) ?c) +(pow (pow ?a ?b) ?c) ==> (pow ?a (* ?b ?c)) +(log (pow ?a ?b)) ==> (* ?b (log ?a)) +(* ?b (log ?a)) ==> (log (pow ?a ?b)) +(exp (- ?a ?b)) ==> (/ (exp ?a) (exp ?b)) +(/ (exp ?a) (exp ?b)) ==> (exp (- ?a ?b)) +(exp (log 0)) ==> 0 +0 ==> (exp (log 0)) +(exp 1) ==> (pow e 1) +(pow e 1) ==> (exp 1) +(pow e ?x) ==> (exp ?x) +(exp ?x) ==> (pow e ?x) +(exp (log ?x)) ==> ?x +?x ==> (exp (log ?x)) +(log (exp ?x)) ==> ?x +?x ==> (log (exp ?x)) +(pow ?x (/ ?a ?b)) ==> (pow (pow ?x ?a) (/ 1 ?b)) +(pow (pow ?x ?a) (/ 1 ?b)) ==> (pow ?x (/ ?a ?b)) +(pow ?x (+ ?a ?b)) ==> (* (pow ?x ?a) (pow ?x ?b)) +(* (pow ?x ?a) (pow ?x ?b)) ==> (pow ?x (+ ?a ?b)) +(* (pow ?x ?a) (pow ?x ?b)) ==> (pow ?x (+ ?b ?b)) diff --git a/jfp/cs1/exp/reprompted-sound.rules b/jfp/cs1/exp/reprompted-sound.rules new file mode 100644 index 00000000..522428d6 --- /dev/null +++ b/jfp/cs1/exp/reprompted-sound.rules @@ -0,0 +1,53 @@ +(log (* ?a ?b)) ==> (+ (log ?a) (log ?b)) +(+ (log ?a) (log ?b)) ==> (log (* ?a ?b)) +(log (/ ?a ?b)) ==> (- (log ?a) (log ?b)) +(- (log ?a) (log ?b)) ==> (log (/ ?a ?b)) +(pow ?a (+ ?b ?c)) ==> (* (pow ?a ?b) (pow ?a ?c)) +(* (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (+ ?b ?c)) +(/ (pow ?a ?b) (pow ?a ?c)) ==> (pow ?a (- ?b ?c)) +(pow ?a (- ?b ?c)) ==> (/ (pow ?a ?b) (pow ?a ?c)) +(pow ?a 1) ==> ?a +?a ==> (pow ?a 1) +(pow ?x 3) ==> (* ?x (* ?x ?x)) +(* ?x (* ?x ?x)) ==> (pow ?x 3) +(log 1) ==> 0 +0 ==> (log 1) +(exp 0) ==> 1 +1 ==> (exp 0) +(log (exp 0)) ==> 0 +0 ==> (log (exp 0)) +(log (exp 1)) ==> 1 +1 ==> (log (exp 1)) +(exp (log 1)) ==> 1 +1 ==> (exp (log 1)) +(exp (+ ?a 0)) ==> (exp ?a) +(exp ?a) ==> (exp (+ ?a 0)) +(pow ?x 0) ==> 1 +(pow (exp ?a) 1) ==> (exp ?a) +(exp ?a) ==> (pow (exp ?a) 1) +(pow 0 ?y) ==> 0 +(pow 0 0) ==> 1 +1 ==> (pow 0 0) +(pow ?x 1) ==> ?x +?x ==> (pow ?x 1) +(pow ?a (* ?b ?c)) ==> (pow (pow ?a ?b) ?c) +(pow (pow ?a ?b) ?c) ==> (pow ?a (* ?b ?c)) +(log (pow ?a ?b)) ==> (* ?b (log ?a)) +(* ?b (log ?a)) ==> (log (pow ?a ?b)) +(exp (- ?a ?b)) ==> (/ (exp ?a) (exp ?b)) +(/ (exp ?a) (exp ?b)) ==> (exp (- ?a ?b)) +(exp (log 0)) ==> 0 +0 ==> (exp (log 0)) +(exp 1) ==> (pow e 1) +(pow e 1) ==> (exp 1) +(pow e ?x) ==> (exp ?x) +(exp ?x) ==> (pow e ?x) +(exp (log ?x)) ==> ?x +?x ==> (exp (log ?x)) +(log (exp ?x)) ==> ?x +?x ==> (log (exp ?x)) +(pow ?x (/ ?a ?b)) ==> (pow (pow ?x ?a) (/ 1 ?b)) +(pow (pow ?x ?a) (/ 1 ?b)) ==> (pow ?x (/ ?a ?b)) +(pow ?x (+ ?a ?b)) ==> (* (pow ?x ?a) (pow ?x ?b)) +(* (pow ?x ?a) (pow ?x ?b)) ==> (pow ?x (+ ?a ?b)) +(* (pow ?x ?a) (pow ?x ?b)) ==> (pow ?x (+ ?b ?b)) diff --git a/jfp/cs1/exp/sound.rules b/jfp/cs1/exp/sound.rules new file mode 100644 index 00000000..0104eb6b --- /dev/null +++ b/jfp/cs1/exp/sound.rules @@ -0,0 +1,44 @@ +(exp 0) ==> 1 +1 ==> (exp 0) +(log (exp ?x)) ==> ?x +?x ==> (log (exp ?x)) +(exp (log ?x)) ==> ?x +?x ==> (exp (log ?x)) +(pow ?x 1) ==> ?x +?x ==> (pow ?x 1) +(pow ?x 0) ==> 1 +(pow 1 ?x) ==> 1 +(pow ?x (* ?y ?z)) ==> (pow (pow ?x ?y) ?z) +(pow (pow ?x ?y) ?z) ==> (pow ?x (* ?y ?z)) +(log (pow ?x ?y)) ==> (* ?y (log ?x)) +(* ?y (log ?x)) ==> (log (pow ?x ?y)) +(exp (+ ?x ?y)) ==> (* (exp ?x) (exp ?y)) +(* (exp ?x) (exp ?y)) ==> (exp (+ ?x ?y)) +(exp (* ?x ?y)) ==> (pow (exp ?x) ?y) +(pow (exp ?x) ?y) ==> (exp (* ?x ?y)) +(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b)) +(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b)) +(exp (* ?a ?b)) ==> (pow (exp ?a) ?b) +(pow (exp ?a) ?b) ==> (exp (* ?a ?b)) +(log (pow ?a ?b)) ==> (* ?b (log ?a)) +(* ?b (log ?a)) ==> (log (pow ?a ?b)) +(pow ?a 0) ==> 1 +(pow ?a 1) ==> ?a +?a ==> (pow ?a 1) +(pow 1 ?b) ==> 1 +(pow ?a 2) ==> (* ?a ?a) +(* ?a ?a) ==> (pow ?a 2) +(pow ?x (- ?y)) ==> (/ 1 (pow ?x ?y)) +(/ 1 (pow ?x ?y)) ==> (pow ?x (- ?y)) +(log 1) ==> 0 +0 ==> (log 1) +(pow ?x -1) ==> (/ 1 ?x) +(/ 1 ?x) ==> (pow ?x -1) +(exp (log 1)) ==> 1 +1 ==> (exp (log 1)) +(log (exp 0)) ==> 0 +0 ==> (log (exp 0)) +(exp (* ?x (log ?y))) ==> (pow ?y ?x) +(pow ?y ?x) ==> (exp (* ?x (log ?y))) +(pow ?x ?y) ==> (exp (* ?y (log ?x))) +(exp (* ?y (log ?x))) ==> (pow ?x ?y) diff --git a/jfp/cs1/halide/A5-LLM-A5-1-derive.json b/jfp/cs1/halide/A5-LLM-A5-1-derive.json new file mode 100644 index 00000000..92beb45f --- /dev/null +++ b/jfp/cs1/halide/A5-LLM-A5-1-derive.json @@ -0,0 +1,68 @@ +{ + "duration": { + "secs": 0, + "nanos": 903924875 + }, + "num_rules": 480, + "num_against": 56, + "can": [ + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (<= (- ?x 1) (- ?y 1))", + "(<= (- ?x 1) (- ?y 1)) ==> (<= ?x ?y)", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(- (+ ?x ?y) ?y) ==> ?x" + ], + "cannot": [ + "(/ 0 ?x) ==> 0", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z))", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z))", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y))", + "(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y))", + "(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y))", + "(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y))", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z)", + "(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z)", + "(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w))", + "(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w))", + "(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w))", + "(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w))", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))" + ] +} diff --git a/jfp/cs1/halide/A5-LLM-A5-2-derive.json b/jfp/cs1/halide/A5-LLM-A5-2-derive.json new file mode 100644 index 00000000..71f0f52f --- /dev/null +++ b/jfp/cs1/halide/A5-LLM-A5-2-derive.json @@ -0,0 +1,71 @@ +{ + "duration": { + "secs": 1, + "nanos": 249480500 + }, + "num_rules": 480, + "num_against": 59, + "can": [ + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (<= (- ?x 1) (- ?y 1))", + "(<= (- ?x 1) (- ?y 1)) ==> (<= ?x ?y)", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(- (+ ?x ?y) ?y) ==> ?x" + ], + "cannot": [ + "(/ ?x 0) ==> 0", + "(select ?c (select ?d ?x ?y) (select ?d ?z ?w)) ==> (select ?d (select ?c ?x ?z) (select ?c ?y ?w))", + "(select ?d (select ?c ?x ?z) (select ?c ?y ?w)) ==> (select ?c (select ?d ?x ?y) (select ?d ?z ?w))", + "(/ 0 ?x) ==> 0", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z))", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z))", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y))", + "(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y))", + "(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y))", + "(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y))", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z)", + "(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z)", + "(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w))", + "(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w))", + "(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w))", + "(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w))", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))" + ] +} diff --git a/jfp/cs1/halide/A5-LLM-Enumo-1-derive.json b/jfp/cs1/halide/A5-LLM-Enumo-1-derive.json new file mode 100644 index 00000000..f8373ae7 --- /dev/null +++ b/jfp/cs1/halide/A5-LLM-Enumo-1-derive.json @@ -0,0 +1,57 @@ +{ + "duration": { + "secs": 0, + "nanos": 996208833 + }, + "num_rules": 480, + "num_against": 45, + "can": [ + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(- (+ ?x ?y) ?y) ==> ?x", + "(select ?x ?y ?z) ==> (select (! ?x) ?z ?y)", + "(select (! ?x) ?z ?y) ==> (select ?x ?y ?z)", + "(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z)", + "(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w)" + ], + "cannot": [ + "(/ 0 ?x) ==> 0", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b))", + "(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))" + ] +} diff --git a/jfp/cs1/halide/A5-LLM-Enumo-2-derive.json b/jfp/cs1/halide/A5-LLM-Enumo-2-derive.json new file mode 100644 index 00000000..f6e353d1 --- /dev/null +++ b/jfp/cs1/halide/A5-LLM-Enumo-2-derive.json @@ -0,0 +1,60 @@ +{ + "duration": { + "secs": 0, + "nanos": 931363541 + }, + "num_rules": 480, + "num_against": 48, + "can": [ + "(<= ?a ?b) ==> (|| (< ?a ?b) (== ?a ?b))", + "(|| (< ?a ?b) (== ?a ?b)) ==> (<= ?a ?b)", + "(select ?c ?b ?a) ==> (select ?c ?b ?a)", + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(- (+ ?x ?y) ?y) ==> ?x", + "(select ?x ?y ?z) ==> (select (! ?x) ?z ?y)", + "(select (! ?x) ?z ?y) ==> (select ?x ?y ?z)", + "(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z)", + "(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w)" + ], + "cannot": [ + "(/ 0 ?x) ==> 0", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b))", + "(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))" + ] +} diff --git a/jfp/cs1/halide/A5-LLM-None-1-derive.json b/jfp/cs1/halide/A5-LLM-None-1-derive.json new file mode 100644 index 00000000..4c49a24a --- /dev/null +++ b/jfp/cs1/halide/A5-LLM-None-1-derive.json @@ -0,0 +1,224 @@ +{ + "duration": { + "secs": 1, + "nanos": 704946959 + }, + "num_rules": 480, + "num_against": 212, + "can": [ + "(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w)", + "(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z)", + "(select (! ?x) ?z ?y) ==> (select ?x ?y ?z)", + "(select ?x ?y ?z) ==> (select (! ?x) ?z ?y)", + "(max (max ?x ?y) ?z) ==> (max ?x (max ?y ?z))", + "(max ?x (max ?y ?z)) ==> (max (max ?x ?y) ?z)", + "(min (min ?x ?y) ?z) ==> (min ?x (min ?y ?z))", + "(min ?x (min ?y ?z)) ==> (min (min ?x ?y) ?z)", + "(+ ?x (+ ?y ?z)) ==> (+ (+ ?x ?y) ?z)", + "(+ (+ ?x ?y) ?z) ==> (+ ?x (+ ?y ?z))", + "(* ?x (* ?y ?z)) ==> (* (* ?x ?y) ?z)", + "(* (* ?x ?y) ?z) ==> (* ?x (* ?y ?z))", + "(^ (^ ?x ?y) ?z) ==> (^ ?x (^ ?y ?z))", + "(^ ?x (^ ?y ?z)) ==> (^ (^ ?x ?y) ?z)", + "(|| (|| ?x ?y) ?z) ==> (|| ?x (|| ?y ?z))", + "(|| ?x (|| ?y ?z)) ==> (|| (|| ?x ?y) ?z)", + "(&& (&& ?x ?y) ?z) ==> (&& ?x (&& ?y ?z))", + "(&& ?x (&& ?y ?z)) ==> (&& (&& ?x ?y) ?z)", + "(- (- ?x ?y) ?z) ==> (- ?x (+ ?y ?z))", + "(- ?x (+ ?y ?z)) ==> (- (- ?x ?y) ?z)", + "(+ ?x (- ?y ?z)) ==> (- (+ ?x ?y) ?z)", + "(- (+ ?x ?y) ?z) ==> (+ ?x (- ?y ?z))", + "(<= ?x (+ ?z ?y)) ==> (<= (- ?x ?y) ?z)", + "(<= (- ?x ?y) ?z) ==> (<= ?x (+ ?z ?y))", + "(< ?x (+ ?z ?y)) ==> (< (- ?x ?y) ?z)", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(<= ?x (- ?z ?y)) ==> (<= (+ ?x ?y) ?z)", + "(<= (+ ?x ?y) ?z) ==> (<= ?x (- ?z ?y))", + "(< ?x (- ?z ?y)) ==> (< (+ ?x ?y) ?z)", + "(< (+ ?x ?y) ?z) ==> (< ?x (- ?z ?y))", + "(== ?x (+ ?z ?y)) ==> (== (- ?x ?y) ?z)", + "(== (- ?x ?y) ?z) ==> (== ?x (+ ?z ?y))", + "(== ?x (- ?z ?y)) ==> (== (+ ?x ?y) ?z)", + "(== (+ ?x ?y) ?z) ==> (== ?x (- ?z ?y))", + "(select (== ?x ?y) ?z ?z) ==> ?z", + "(+ (- ?x ?y) (- ?z)) ==> (- ?x (+ ?y ?z))", + "(- ?x (+ ?y ?z)) ==> (+ (- ?x ?y) (- ?z))", + "(select ?c (- ?x 0) ?y) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (- ?x 0) ?y)", + "(select ?c (* 1 ?x) ?y) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (* 1 ?x) ?y)", + "(select ?c ?x (+ 0 ?y)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c ?x (+ 0 ?y))", + "(select ?c (* ?x 1) (* ?y 1)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (* ?x 1) (* ?y 1))", + "(select ?c (+ ?x 0) (+ ?y 0)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (+ ?x 0) (+ ?y 0))", + "(!= (select ?c ?a ?b) (select ?c ?a ?b)) ==> 0", + "(== (select ?c ?a ?b) (select ?c ?a ?b)) ==> 1", + "(max ?y ?x) ==> (max ?x ?y)", + "(max ?x ?y) ==> (max ?y ?x)", + "(min ?y ?x) ==> (min ?x ?y)", + "(min ?x ?y) ==> (min ?y ?x)", + "(* ?y ?x) ==> (* ?x ?y)", + "(* ?x ?y) ==> (* ?y ?x)", + "(+ ?y ?x) ==> (+ ?x ?y)", + "(+ ?x ?y) ==> (+ ?y ?x)", + "(^ ?y ?x) ==> (^ ?x ?y)", + "(^ ?x ?y) ==> (^ ?y ?x)", + "(|| ?y ?x) ==> (|| ?x ?y)", + "(|| ?x ?y) ==> (|| ?y ?x)", + "(&& ?y ?x) ==> (&& ?x ?y)", + "(&& ?x ?y) ==> (&& ?y ?x)", + "(!= ?y ?x) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= ?y ?x)", + "(== ?y ?x) ==> (== ?x ?y)", + "(== ?x ?y) ==> (== ?y ?x)", + "(select ?x ?y ?y) ==> ?y", + "(- ?y ?x) ==> (- (- ?x ?y))", + "(- (- ?x ?y)) ==> (- ?y ?x)", + "(- ?x ?y) ==> (+ (- ?y) ?x)", + "(+ (- ?y) ?x) ==> (- ?x ?y)", + "(+ ?x ?y) ==> (- ?x (- ?y))", + "(- ?x (- ?y)) ==> (+ ?x ?y)", + "(== ?x ?y) ==> (! (!= ?x ?y))", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(!= ?x ?y) ==> (! (== ?x ?y))", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(- (* ?x ?y)) ==> (* (- ?x) ?y)", + "(* (- ?x) ?y) ==> (- (* ?x ?y))", + "(^ ?x (! ?y)) ==> (! (^ ?x ?y))", + "(! (^ ?x ?y)) ==> (^ ?x (! ?y))", + "(min ?x (max ?x ?y)) ==> ?x", + "(max ?x (min ?x ?y)) ==> ?x", + "(- (+ ?x ?y) ?y) ==> ?x", + "(|| ?x ?y) ==> (|| (|| ?x ?y) ?x)", + "(|| (|| ?x ?y) ?x) ==> (|| ?x ?y)", + "(&& ?x ?y) ==> (&& (&& ?x ?y) ?x)", + "(&& (&& ?x ?y) ?x) ==> (&& ?x ?y)", + "(* ?x ?y) ==> (* (- ?x) (- ?y))", + "(* (- ?x) (- ?y)) ==> (* ?x ?y)", + "(!= (- ?x) (- ?y)) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= (- ?x) (- ?y))", + "(<= ?y ?x) ==> (== (min ?x ?y) ?y)", + "(== (min ?x ?y) ?y) ==> (<= ?y ?x)", + "(&& (! ?x) (! ?y)) ==> (! (|| ?x ?y))", + "(! (|| ?x ?y)) ==> (&& (! ?x) (! ?y))", + "(|| (! ?x) (! ?y)) ==> (! (&& ?x ?y))", + "(! (&& ?x ?y)) ==> (|| (! ?x) (! ?y))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(select 0 ?x ?y) ==> ?y", + "(+ ?x (* -1 ?y)) ==> (- ?x ?y)", + "(- ?x ?y) ==> (+ ?x (* -1 ?y))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(<= (+ ?x 1) ?y) ==> (< ?x ?y)", + "(< ?x ?y) ==> (<= (+ ?x 1) ?y)", + "(!= (- ?x 1) (- ?y 1)) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= (- ?x 1) (- ?y 1))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (select (<= ?x ?y) 1 0)", + "(select (<= ?x ?y) 1 0) ==> (<= ?x ?y)", + "(!= ?x ?y) ==> (select (!= ?x ?y) 1 0)", + "(select (!= ?x ?y) 1 0) ==> (!= ?x ?y)", + "(<= ?x ?x) ==> 1", + "(< ?x ?x) ==> 0", + "(^ ?x ?x) ==> 0", + "(- ?x ?x) ==> 0", + "(! ?x) ==> (== 0 ?x)", + "(== 0 ?x) ==> (! ?x)", + "(! ?x) ==> (^ ?x 1)", + "(^ ?x 1) ==> (! ?x)", + "(&& (! ?x) ?x) ==> 0", + "(|| (! ?x) ?x) ==> 1", + "(! ?x) ==> (! (|| ?x 0))", + "(! (|| ?x 0)) ==> (! ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(! ?c) ==> (select ?c 0 1)", + "(select ?c 0 1) ==> (! ?c)", + "(- (min 0 ?x)) ==> (max (- ?x) 0)", + "(max (- ?x) 0) ==> (- (min 0 ?x))", + "(- (max 0 ?x)) ==> (min (- ?x) 0)", + "(min (- ?x) 0) ==> (- (max 0 ?x))" + ], + "cannot": [ + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?z (select ?x ?y ?a) (select ?x ?y ?b)) ==> (select ?x ?y (select ?z ?a ?b))", + "(select ?x ?y (select ?z ?a ?b)) ==> (select ?z (select ?x ?y ?a) (select ?x ?y ?b))", + "(select ?y (select ?x ?a ?c) (select ?x ?b ?c)) ==> (select ?x (select ?y ?a ?b) ?c)", + "(select ?x (select ?y ?a ?b) ?c) ==> (select ?y (select ?x ?a ?c) (select ?x ?b ?c))", + "(select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b)) ==> (select (- (select ?x ?y ?z)) ?a ?b)", + "(select (- (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b))", + "(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b)", + "(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b))", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w))", + "(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w))", + "(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w))", + "(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w))", + "(select ?c (!= ?a ?x) (!= ?b ?x)) ==> (!= (select ?c ?a ?b) ?x)", + "(!= (select ?c ?a ?b) ?x) ==> (select ?c (!= ?a ?x) (!= ?b ?x))", + "(select ?c (!= ?x ?a) (!= ?x ?b)) ==> (!= ?x (select ?c ?a ?b))", + "(!= ?x (select ?c ?a ?b)) ==> (select ?c (!= ?x ?a) (!= ?x ?b))", + "(select ?c (== ?a ?x) (== ?b ?x)) ==> (== (select ?c ?a ?b) ?x)", + "(== (select ?c ?a ?b) ?x) ==> (select ?c (== ?a ?x) (== ?b ?x))", + "(select ?c (== ?x ?a) (== ?x ?b)) ==> (== ?x (select ?c ?a ?b))", + "(== ?x (select ?c ?a ?b)) ==> (select ?c (== ?x ?a) (== ?x ?b))", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z))", + "(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z))", + "(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z)", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y))", + "(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y))", + "(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y))", + "(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y))", + "(+ (* ?y ?x) (* ?z ?x)) ==> (* (+ ?y ?z) ?x)", + "(* (+ ?y ?z) ?x) ==> (+ (* ?y ?x) (* ?z ?x))", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z))", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z))", + "(- (* ?x ?z) (* ?y ?z)) ==> (* (- ?x ?y) ?z)", + "(* (- ?x ?y) ?z) ==> (- (* ?x ?z) (* ?y ?z))", + "(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (- ?y ?z))", + "(* ?x (- ?y ?z)) ==> (- (* ?x ?y) (* ?x ?z))", + "(- (* ?x ?z) (* ?y ?z)) ==> (* (+ ?x (- ?y)) ?z)", + "(* (+ ?x (- ?y)) ?z) ==> (- (* ?x ?z) (* ?y ?z))", + "(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (+ ?y (- ?z)))", + "(* ?x (+ ?y (- ?z))) ==> (- (* ?x ?y) (* ?x ?z))", + "(+ ?a (select ?c ?b ?c)) ==> (select ?c (+ ?a ?b) (+ ?a ?c))", + "(select ?c (+ ?a ?b) (+ ?a ?c)) ==> (+ ?a (select ?c ?b ?c))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(min ?x ?y) ==> (select (< ?x ?y) ?x ?y)", + "(/ 0 ?x) ==> 0" + ] +} diff --git a/jfp/cs1/halide/A5-LLM-None-2-derive.json b/jfp/cs1/halide/A5-LLM-None-2-derive.json new file mode 100644 index 00000000..365413a9 --- /dev/null +++ b/jfp/cs1/halide/A5-LLM-None-2-derive.json @@ -0,0 +1,241 @@ +{ + "duration": { + "secs": 2, + "nanos": 88536125 + }, + "num_rules": 480, + "num_against": 229, + "can": [ + "(* 0 ?x) ==> 0", + "(&& 0 ?x) ==> 0", + "(|| 1 ?x) ==> 1", + "(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w)", + "(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z)", + "(select (! ?x) ?z ?y) ==> (select ?x ?y ?z)", + "(select ?x ?y ?z) ==> (select (! ?x) ?z ?y)", + "(max (max ?x ?y) ?z) ==> (max ?x (max ?y ?z))", + "(max ?x (max ?y ?z)) ==> (max (max ?x ?y) ?z)", + "(min (min ?x ?y) ?z) ==> (min ?x (min ?y ?z))", + "(min ?x (min ?y ?z)) ==> (min (min ?x ?y) ?z)", + "(+ ?x (+ ?y ?z)) ==> (+ (+ ?x ?y) ?z)", + "(+ (+ ?x ?y) ?z) ==> (+ ?x (+ ?y ?z))", + "(* ?x (* ?y ?z)) ==> (* (* ?x ?y) ?z)", + "(* (* ?x ?y) ?z) ==> (* ?x (* ?y ?z))", + "(^ (^ ?x ?y) ?z) ==> (^ ?x (^ ?y ?z))", + "(^ ?x (^ ?y ?z)) ==> (^ (^ ?x ?y) ?z)", + "(|| (|| ?x ?y) ?z) ==> (|| ?x (|| ?y ?z))", + "(|| ?x (|| ?y ?z)) ==> (|| (|| ?x ?y) ?z)", + "(&& (&& ?x ?y) ?z) ==> (&& ?x (&& ?y ?z))", + "(&& ?x (&& ?y ?z)) ==> (&& (&& ?x ?y) ?z)", + "(- (- ?x ?y) ?z) ==> (- ?x (+ ?y ?z))", + "(- ?x (+ ?y ?z)) ==> (- (- ?x ?y) ?z)", + "(+ ?x (- ?y ?z)) ==> (- (+ ?x ?y) ?z)", + "(- (+ ?x ?y) ?z) ==> (+ ?x (- ?y ?z))", + "(<= ?x (+ ?z ?y)) ==> (<= (- ?x ?y) ?z)", + "(<= (- ?x ?y) ?z) ==> (<= ?x (+ ?z ?y))", + "(< ?x (+ ?z ?y)) ==> (< (- ?x ?y) ?z)", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(<= ?x (- ?z ?y)) ==> (<= (+ ?x ?y) ?z)", + "(<= (+ ?x ?y) ?z) ==> (<= ?x (- ?z ?y))", + "(< ?x (- ?z ?y)) ==> (< (+ ?x ?y) ?z)", + "(< (+ ?x ?y) ?z) ==> (< ?x (- ?z ?y))", + "(== ?x (+ ?z ?y)) ==> (== (- ?x ?y) ?z)", + "(== (- ?x ?y) ?z) ==> (== ?x (+ ?z ?y))", + "(== ?x (- ?z ?y)) ==> (== (+ ?x ?y) ?z)", + "(== (+ ?x ?y) ?z) ==> (== ?x (- ?z ?y))", + "(select (== ?x ?y) ?z ?z) ==> ?z", + "(+ (- ?x ?y) (- ?z)) ==> (- ?x (+ ?y ?z))", + "(- ?x (+ ?y ?z)) ==> (+ (- ?x ?y) (- ?z))", + "(select ?c (- ?x 0) ?y) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (- ?x 0) ?y)", + "(select ?c (* 1 ?x) ?y) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (* 1 ?x) ?y)", + "(select ?c ?x (+ 0 ?y)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c ?x (+ 0 ?y))", + "(select ?c (* ?x 1) (* ?y 1)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (* ?x 1) (* ?y 1))", + "(select ?c (+ ?x 0) (+ ?y 0)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (+ ?x 0) (+ ?y 0))", + "(!= (select ?c ?a ?b) (select ?c ?a ?b)) ==> 0", + "(== (select ?c ?a ?b) (select ?c ?a ?b)) ==> 1", + "(max ?y ?x) ==> (max ?x ?y)", + "(max ?x ?y) ==> (max ?y ?x)", + "(min ?y ?x) ==> (min ?x ?y)", + "(min ?x ?y) ==> (min ?y ?x)", + "(* ?y ?x) ==> (* ?x ?y)", + "(* ?x ?y) ==> (* ?y ?x)", + "(+ ?y ?x) ==> (+ ?x ?y)", + "(+ ?x ?y) ==> (+ ?y ?x)", + "(^ ?y ?x) ==> (^ ?x ?y)", + "(^ ?x ?y) ==> (^ ?y ?x)", + "(|| ?y ?x) ==> (|| ?x ?y)", + "(|| ?x ?y) ==> (|| ?y ?x)", + "(&& ?y ?x) ==> (&& ?x ?y)", + "(&& ?x ?y) ==> (&& ?y ?x)", + "(!= ?y ?x) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= ?y ?x)", + "(== ?y ?x) ==> (== ?x ?y)", + "(== ?x ?y) ==> (== ?y ?x)", + "(select ?x ?y ?y) ==> ?y", + "(- ?y ?x) ==> (- (- ?x ?y))", + "(- (- ?x ?y)) ==> (- ?y ?x)", + "(- ?x ?y) ==> (+ (- ?y) ?x)", + "(+ (- ?y) ?x) ==> (- ?x ?y)", + "(+ ?x ?y) ==> (- ?x (- ?y))", + "(- ?x (- ?y)) ==> (+ ?x ?y)", + "(== ?x ?y) ==> (! (!= ?x ?y))", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(!= ?x ?y) ==> (! (== ?x ?y))", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(- (* ?x ?y)) ==> (* (- ?x) ?y)", + "(* (- ?x) ?y) ==> (- (* ?x ?y))", + "(^ ?x (! ?y)) ==> (! (^ ?x ?y))", + "(! (^ ?x ?y)) ==> (^ ?x (! ?y))", + "(min ?x (max ?x ?y)) ==> ?x", + "(max ?x (min ?x ?y)) ==> ?x", + "(- (+ ?x ?y) ?y) ==> ?x", + "(|| ?x ?y) ==> (|| (|| ?x ?y) ?x)", + "(|| (|| ?x ?y) ?x) ==> (|| ?x ?y)", + "(&& ?x ?y) ==> (&& (&& ?x ?y) ?x)", + "(&& (&& ?x ?y) ?x) ==> (&& ?x ?y)", + "(* ?x ?y) ==> (* (- ?x) (- ?y))", + "(* (- ?x) (- ?y)) ==> (* ?x ?y)", + "(!= (- ?x) (- ?y)) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= (- ?x) (- ?y))", + "(<= ?y ?x) ==> (== (min ?x ?y) ?y)", + "(== (min ?x ?y) ?y) ==> (<= ?y ?x)", + "(&& (! ?x) (! ?y)) ==> (! (|| ?x ?y))", + "(! (|| ?x ?y)) ==> (&& (! ?x) (! ?y))", + "(|| (! ?x) (! ?y)) ==> (! (&& ?x ?y))", + "(! (&& ?x ?y)) ==> (|| (! ?x) (! ?y))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(select 0 ?x ?y) ==> ?y", + "(+ ?x (* -1 ?y)) ==> (- ?x ?y)", + "(- ?x ?y) ==> (+ ?x (* -1 ?y))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(<= (+ ?x 1) ?y) ==> (< ?x ?y)", + "(< ?x ?y) ==> (<= (+ ?x 1) ?y)", + "(!= (- ?x 1) (- ?y 1)) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= (- ?x 1) (- ?y 1))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (select (<= ?x ?y) 1 0)", + "(select (<= ?x ?y) 1 0) ==> (<= ?x ?y)", + "(!= ?x ?y) ==> (select (!= ?x ?y) 1 0)", + "(select (!= ?x ?y) 1 0) ==> (!= ?x ?y)", + "(<= ?x ?x) ==> 1", + "(< ?x ?x) ==> 0", + "(^ ?x ?x) ==> 0", + "(- ?x ?x) ==> 0", + "(! ?x) ==> (== 0 ?x)", + "(== 0 ?x) ==> (! ?x)", + "(! ?x) ==> (^ ?x 1)", + "(^ ?x 1) ==> (! ?x)", + "(&& (! ?x) ?x) ==> 0", + "(|| (! ?x) ?x) ==> 1", + "(! ?x) ==> (! (|| ?x 0))", + "(! (|| ?x 0)) ==> (! ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(! ?c) ==> (select ?c 0 1)", + "(select ?c 0 1) ==> (! ?c)", + "(- (min 0 ?x)) ==> (max (- ?x) 0)", + "(max (- ?x) 0) ==> (- (min 0 ?x))", + "(- (max 0 ?x)) ==> (min (- ?x) 0)", + "(min (- ?x) 0) ==> (- (max 0 ?x))" + ], + "cannot": [ + "(max 1 ?x) ==> (select (<= ?x 1) 1 ?x)", + "(select (<= ?x 1) 1 ?x) ==> (max 1 ?x)", + "(select ?c (/ ?x ?y) (/ ?x ?z)) ==> (/ ?x (select ?c ?y ?z))", + "(/ ?x (select ?c ?y ?z)) ==> (select ?c (/ ?x ?y) (/ ?x ?z))", + "(select ?c (< ?x ?y) (< ?x ?z)) ==> (< ?x (select ?c ?y ?z))", + "(< ?x (select ?c ?y ?z)) ==> (select ?c (< ?x ?y) (< ?x ?z))", + "(select ?c (^ ?a ?x) (^ ?b ?x)) ==> (^ (select ?c ?a ?b) ?x)", + "(^ (select ?c ?a ?b) ?x) ==> (select ?c (^ ?a ?x) (^ ?b ?x))", + "(select ?c (&& ?a ?x) (&& ?b ?x)) ==> (&& (select ?c ?a ?b) ?x)", + "(&& (select ?c ?a ?b) ?x) ==> (select ?c (&& ?a ?x) (&& ?b ?x))", + "(|| (select ?c ?a ?b) ?x) ==> (select ?c (|| ?a ?x) (|| ?b ?x))", + "(select ?c (|| ?a ?x) (|| ?b ?x)) ==> (|| (select ?c ?a ?b) ?x)", + "(select ?c (< ?a ?x) (< ?b ?x)) ==> (< (select ?c ?a ?b) ?x)", + "(< (select ?c ?a ?b) ?x) ==> (select ?c (< ?a ?x) (< ?b ?x))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?z (select ?x ?y ?a) (select ?x ?y ?b)) ==> (select ?x ?y (select ?z ?a ?b))", + "(select ?x ?y (select ?z ?a ?b)) ==> (select ?z (select ?x ?y ?a) (select ?x ?y ?b))", + "(select ?y (select ?x ?a ?c) (select ?x ?b ?c)) ==> (select ?x (select ?y ?a ?b) ?c)", + "(select ?x (select ?y ?a ?b) ?c) ==> (select ?y (select ?x ?a ?c) (select ?x ?b ?c))", + "(select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b)) ==> (select (- (select ?x ?y ?z)) ?a ?b)", + "(select (- (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b))", + "(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b)", + "(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b))", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w))", + "(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w))", + "(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w))", + "(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w))", + "(select ?c (!= ?a ?x) (!= ?b ?x)) ==> (!= (select ?c ?a ?b) ?x)", + "(!= (select ?c ?a ?b) ?x) ==> (select ?c (!= ?a ?x) (!= ?b ?x))", + "(select ?c (!= ?x ?a) (!= ?x ?b)) ==> (!= ?x (select ?c ?a ?b))", + "(!= ?x (select ?c ?a ?b)) ==> (select ?c (!= ?x ?a) (!= ?x ?b))", + "(select ?c (== ?a ?x) (== ?b ?x)) ==> (== (select ?c ?a ?b) ?x)", + "(== (select ?c ?a ?b) ?x) ==> (select ?c (== ?a ?x) (== ?b ?x))", + "(select ?c (== ?x ?a) (== ?x ?b)) ==> (== ?x (select ?c ?a ?b))", + "(== ?x (select ?c ?a ?b)) ==> (select ?c (== ?x ?a) (== ?x ?b))", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z))", + "(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z))", + "(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z)", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y))", + "(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y))", + "(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y))", + "(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y))", + "(+ (* ?y ?x) (* ?z ?x)) ==> (* (+ ?y ?z) ?x)", + "(* (+ ?y ?z) ?x) ==> (+ (* ?y ?x) (* ?z ?x))", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z))", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z))", + "(- (* ?x ?z) (* ?y ?z)) ==> (* (- ?x ?y) ?z)", + "(* (- ?x ?y) ?z) ==> (- (* ?x ?z) (* ?y ?z))", + "(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (- ?y ?z))", + "(* ?x (- ?y ?z)) ==> (- (* ?x ?y) (* ?x ?z))", + "(- (* ?x ?z) (* ?y ?z)) ==> (* (+ ?x (- ?y)) ?z)", + "(* (+ ?x (- ?y)) ?z) ==> (- (* ?x ?z) (* ?y ?z))", + "(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (+ ?y (- ?z)))", + "(* ?x (+ ?y (- ?z))) ==> (- (* ?x ?y) (* ?x ?z))", + "(+ ?a (select ?c ?b ?c)) ==> (select ?c (+ ?a ?b) (+ ?a ?c))", + "(select ?c (+ ?a ?b) (+ ?a ?c)) ==> (+ ?a (select ?c ?b ?c))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(min ?x ?y) ==> (select (< ?x ?y) ?x ?y)", + "(/ 0 ?x) ==> 0" + ] +} diff --git a/jfp/cs1/halide/Enumo-LLM-A5-1-derive.json b/jfp/cs1/halide/Enumo-LLM-A5-1-derive.json new file mode 100644 index 00000000..a337a48f --- /dev/null +++ b/jfp/cs1/halide/Enumo-LLM-A5-1-derive.json @@ -0,0 +1,68 @@ +{ + "duration": { + "secs": 3, + "nanos": 174235666 + }, + "num_rules": 840, + "num_against": 56, + "can": [ + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (<= (- ?x 1) (- ?y 1))", + "(<= (- ?x 1) (- ?y 1)) ==> (<= ?x ?y)", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(- (+ ?x ?y) ?y) ==> ?x", + "(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z))", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z))", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y))", + "(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y))", + "(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y))", + "(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y))", + "(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z)", + "(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z)", + "(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z))", + "(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w))", + "(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w))", + "(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w))", + "(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w))" + ], + "cannot": [ + "(/ 0 ?x) ==> 0", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))" + ] +} diff --git a/jfp/cs1/halide/Enumo-LLM-A5-2-derive.json b/jfp/cs1/halide/Enumo-LLM-A5-2-derive.json new file mode 100644 index 00000000..16b26786 --- /dev/null +++ b/jfp/cs1/halide/Enumo-LLM-A5-2-derive.json @@ -0,0 +1,71 @@ +{ + "duration": { + "secs": 3, + "nanos": 256035334 + }, + "num_rules": 840, + "num_against": 59, + "can": [ + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (<= (- ?x 1) (- ?y 1))", + "(<= (- ?x 1) (- ?y 1)) ==> (<= ?x ?y)", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(- (+ ?x ?y) ?y) ==> ?x", + "(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z))", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z))", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y))", + "(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y))", + "(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y))", + "(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y))", + "(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z)", + "(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z)", + "(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z))", + "(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w))", + "(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w))", + "(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w))", + "(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w))" + ], + "cannot": [ + "(/ ?x 0) ==> 0", + "(select ?c (select ?d ?x ?y) (select ?d ?z ?w)) ==> (select ?d (select ?c ?x ?z) (select ?c ?y ?w))", + "(select ?d (select ?c ?x ?z) (select ?c ?y ?w)) ==> (select ?c (select ?d ?x ?y) (select ?d ?z ?w))", + "(/ 0 ?x) ==> 0", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))" + ] +} diff --git a/jfp/cs1/halide/Enumo-LLM-Enumo-1-derive.json b/jfp/cs1/halide/Enumo-LLM-Enumo-1-derive.json new file mode 100644 index 00000000..e84c86cb --- /dev/null +++ b/jfp/cs1/halide/Enumo-LLM-Enumo-1-derive.json @@ -0,0 +1,57 @@ +{ + "duration": { + "secs": 4, + "nanos": 931431709 + }, + "num_rules": 840, + "num_against": 45, + "can": [ + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(- (+ ?x ?y) ?y) ==> ?x", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))" + ], + "cannot": [ + "(/ 0 ?x) ==> 0", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(select ?x ?y ?z) ==> (select (! ?x) ?z ?y)", + "(select (! ?x) ?z ?y) ==> (select ?x ?y ?z)", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z)", + "(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w)", + "(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b))", + "(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))" + ] +} diff --git a/jfp/cs1/halide/Enumo-LLM-Enumo-2-derive.json b/jfp/cs1/halide/Enumo-LLM-Enumo-2-derive.json new file mode 100644 index 00000000..6a3b37d5 --- /dev/null +++ b/jfp/cs1/halide/Enumo-LLM-Enumo-2-derive.json @@ -0,0 +1,60 @@ +{ + "duration": { + "secs": 4, + "nanos": 737522250 + }, + "num_rules": 840, + "num_against": 48, + "can": [ + "(<= ?a ?b) ==> (|| (< ?a ?b) (== ?a ?b))", + "(|| (< ?a ?b) (== ?a ?b)) ==> (<= ?a ?b)", + "(select ?c ?b ?a) ==> (select ?c ?b ?a)", + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(- (+ ?x ?y) ?y) ==> ?x", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))" + ], + "cannot": [ + "(/ 0 ?x) ==> 0", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(select ?x ?y ?z) ==> (select (! ?x) ?z ?y)", + "(select (! ?x) ?z ?y) ==> (select ?x ?y ?z)", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z)", + "(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w)", + "(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b))", + "(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))" + ] +} diff --git a/jfp/cs1/halide/Enumo-LLM-None-1-derive.json b/jfp/cs1/halide/Enumo-LLM-None-1-derive.json new file mode 100644 index 00000000..93949aa2 --- /dev/null +++ b/jfp/cs1/halide/Enumo-LLM-None-1-derive.json @@ -0,0 +1,224 @@ +{ + "duration": { + "secs": 5, + "nanos": 406149750 + }, + "num_rules": 840, + "num_against": 212, + "can": [ + "(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w))", + "(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w))", + "(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w))", + "(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w))", + "(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z))", + "(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z))", + "(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z)", + "(max (max ?x ?y) ?z) ==> (max ?x (max ?y ?z))", + "(max ?x (max ?y ?z)) ==> (max (max ?x ?y) ?z)", + "(min (min ?x ?y) ?z) ==> (min ?x (min ?y ?z))", + "(min ?x (min ?y ?z)) ==> (min (min ?x ?y) ?z)", + "(+ ?x (+ ?y ?z)) ==> (+ (+ ?x ?y) ?z)", + "(+ (+ ?x ?y) ?z) ==> (+ ?x (+ ?y ?z))", + "(* ?x (* ?y ?z)) ==> (* (* ?x ?y) ?z)", + "(* (* ?x ?y) ?z) ==> (* ?x (* ?y ?z))", + "(^ (^ ?x ?y) ?z) ==> (^ ?x (^ ?y ?z))", + "(^ ?x (^ ?y ?z)) ==> (^ (^ ?x ?y) ?z)", + "(|| (|| ?x ?y) ?z) ==> (|| ?x (|| ?y ?z))", + "(|| ?x (|| ?y ?z)) ==> (|| (|| ?x ?y) ?z)", + "(&& (&& ?x ?y) ?z) ==> (&& ?x (&& ?y ?z))", + "(&& ?x (&& ?y ?z)) ==> (&& (&& ?x ?y) ?z)", + "(- (- ?x ?y) ?z) ==> (- ?x (+ ?y ?z))", + "(- ?x (+ ?y ?z)) ==> (- (- ?x ?y) ?z)", + "(+ ?x (- ?y ?z)) ==> (- (+ ?x ?y) ?z)", + "(- (+ ?x ?y) ?z) ==> (+ ?x (- ?y ?z))", + "(<= ?x (+ ?z ?y)) ==> (<= (- ?x ?y) ?z)", + "(<= (- ?x ?y) ?z) ==> (<= ?x (+ ?z ?y))", + "(< ?x (+ ?z ?y)) ==> (< (- ?x ?y) ?z)", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(<= ?x (- ?z ?y)) ==> (<= (+ ?x ?y) ?z)", + "(<= (+ ?x ?y) ?z) ==> (<= ?x (- ?z ?y))", + "(< ?x (- ?z ?y)) ==> (< (+ ?x ?y) ?z)", + "(< (+ ?x ?y) ?z) ==> (< ?x (- ?z ?y))", + "(== ?x (+ ?z ?y)) ==> (== (- ?x ?y) ?z)", + "(== (- ?x ?y) ?z) ==> (== ?x (+ ?z ?y))", + "(== ?x (- ?z ?y)) ==> (== (+ ?x ?y) ?z)", + "(== (+ ?x ?y) ?z) ==> (== ?x (- ?z ?y))", + "(select (== ?x ?y) ?z ?z) ==> ?z", + "(+ (- ?x ?y) (- ?z)) ==> (- ?x (+ ?y ?z))", + "(- ?x (+ ?y ?z)) ==> (+ (- ?x ?y) (- ?z))", + "(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y))", + "(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y))", + "(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y))", + "(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y))", + "(+ (* ?y ?x) (* ?z ?x)) ==> (* (+ ?y ?z) ?x)", + "(* (+ ?y ?z) ?x) ==> (+ (* ?y ?x) (* ?z ?x))", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z))", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z))", + "(- (* ?x ?z) (* ?y ?z)) ==> (* (- ?x ?y) ?z)", + "(* (- ?x ?y) ?z) ==> (- (* ?x ?z) (* ?y ?z))", + "(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (- ?y ?z))", + "(* ?x (- ?y ?z)) ==> (- (* ?x ?y) (* ?x ?z))", + "(- (* ?x ?z) (* ?y ?z)) ==> (* (+ ?x (- ?y)) ?z)", + "(* (+ ?x (- ?y)) ?z) ==> (- (* ?x ?z) (* ?y ?z))", + "(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (+ ?y (- ?z)))", + "(* ?x (+ ?y (- ?z))) ==> (- (* ?x ?y) (* ?x ?z))", + "(+ ?a (select ?c ?b ?c)) ==> (select ?c (+ ?a ?b) (+ ?a ?c))", + "(select ?c (+ ?a ?b) (+ ?a ?c)) ==> (+ ?a (select ?c ?b ?c))", + "(select ?c (- ?x 0) ?y) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (- ?x 0) ?y)", + "(select ?c (* 1 ?x) ?y) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (* 1 ?x) ?y)", + "(select ?c ?x (+ 0 ?y)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c ?x (+ 0 ?y))", + "(select ?c (* ?x 1) (* ?y 1)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (* ?x 1) (* ?y 1))", + "(select ?c (+ ?x 0) (+ ?y 0)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (+ ?x 0) (+ ?y 0))", + "(!= (select ?c ?a ?b) (select ?c ?a ?b)) ==> 0", + "(== (select ?c ?a ?b) (select ?c ?a ?b)) ==> 1", + "(max ?y ?x) ==> (max ?x ?y)", + "(max ?x ?y) ==> (max ?y ?x)", + "(min ?y ?x) ==> (min ?x ?y)", + "(min ?x ?y) ==> (min ?y ?x)", + "(* ?y ?x) ==> (* ?x ?y)", + "(* ?x ?y) ==> (* ?y ?x)", + "(+ ?y ?x) ==> (+ ?x ?y)", + "(+ ?x ?y) ==> (+ ?y ?x)", + "(^ ?y ?x) ==> (^ ?x ?y)", + "(^ ?x ?y) ==> (^ ?y ?x)", + "(|| ?y ?x) ==> (|| ?x ?y)", + "(|| ?x ?y) ==> (|| ?y ?x)", + "(&& ?y ?x) ==> (&& ?x ?y)", + "(&& ?x ?y) ==> (&& ?y ?x)", + "(!= ?y ?x) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= ?y ?x)", + "(== ?y ?x) ==> (== ?x ?y)", + "(== ?x ?y) ==> (== ?y ?x)", + "(select ?x ?y ?y) ==> ?y", + "(- ?y ?x) ==> (- (- ?x ?y))", + "(- (- ?x ?y)) ==> (- ?y ?x)", + "(- ?x ?y) ==> (+ (- ?y) ?x)", + "(+ (- ?y) ?x) ==> (- ?x ?y)", + "(+ ?x ?y) ==> (- ?x (- ?y))", + "(- ?x (- ?y)) ==> (+ ?x ?y)", + "(== ?x ?y) ==> (! (!= ?x ?y))", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(!= ?x ?y) ==> (! (== ?x ?y))", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(- (* ?x ?y)) ==> (* (- ?x) ?y)", + "(* (- ?x) ?y) ==> (- (* ?x ?y))", + "(^ ?x (! ?y)) ==> (! (^ ?x ?y))", + "(! (^ ?x ?y)) ==> (^ ?x (! ?y))", + "(min ?x (max ?x ?y)) ==> ?x", + "(max ?x (min ?x ?y)) ==> ?x", + "(- (+ ?x ?y) ?y) ==> ?x", + "(|| ?x ?y) ==> (|| (|| ?x ?y) ?x)", + "(|| (|| ?x ?y) ?x) ==> (|| ?x ?y)", + "(&& ?x ?y) ==> (&& (&& ?x ?y) ?x)", + "(&& (&& ?x ?y) ?x) ==> (&& ?x ?y)", + "(* ?x ?y) ==> (* (- ?x) (- ?y))", + "(* (- ?x) (- ?y)) ==> (* ?x ?y)", + "(!= (- ?x) (- ?y)) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= (- ?x) (- ?y))", + "(<= ?y ?x) ==> (== (min ?x ?y) ?y)", + "(== (min ?x ?y) ?y) ==> (<= ?y ?x)", + "(&& (! ?x) (! ?y)) ==> (! (|| ?x ?y))", + "(! (|| ?x ?y)) ==> (&& (! ?x) (! ?y))", + "(|| (! ?x) (! ?y)) ==> (! (&& ?x ?y))", + "(! (&& ?x ?y)) ==> (|| (! ?x) (! ?y))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(select 0 ?x ?y) ==> ?y", + "(+ ?x (* -1 ?y)) ==> (- ?x ?y)", + "(- ?x ?y) ==> (+ ?x (* -1 ?y))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(<= (+ ?x 1) ?y) ==> (< ?x ?y)", + "(< ?x ?y) ==> (<= (+ ?x 1) ?y)", + "(!= (- ?x 1) (- ?y 1)) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= (- ?x 1) (- ?y 1))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (select (<= ?x ?y) 1 0)", + "(select (<= ?x ?y) 1 0) ==> (<= ?x ?y)", + "(!= ?x ?y) ==> (select (!= ?x ?y) 1 0)", + "(select (!= ?x ?y) 1 0) ==> (!= ?x ?y)", + "(<= ?x ?x) ==> 1", + "(< ?x ?x) ==> 0", + "(^ ?x ?x) ==> 0", + "(- ?x ?x) ==> 0", + "(! ?x) ==> (== 0 ?x)", + "(== 0 ?x) ==> (! ?x)", + "(! ?x) ==> (^ ?x 1)", + "(^ ?x 1) ==> (! ?x)", + "(&& (! ?x) ?x) ==> 0", + "(|| (! ?x) ?x) ==> 1", + "(! ?x) ==> (! (|| ?x 0))", + "(! (|| ?x 0)) ==> (! ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(! ?c) ==> (select ?c 0 1)", + "(select ?c 0 1) ==> (! ?c)", + "(- (min 0 ?x)) ==> (max (- ?x) 0)", + "(max (- ?x) 0) ==> (- (min 0 ?x))", + "(- (max 0 ?x)) ==> (min (- ?x) 0)", + "(min (- ?x) 0) ==> (- (max 0 ?x))" + ], + "cannot": [ + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?z (select ?x ?y ?a) (select ?x ?y ?b)) ==> (select ?x ?y (select ?z ?a ?b))", + "(select ?x ?y (select ?z ?a ?b)) ==> (select ?z (select ?x ?y ?a) (select ?x ?y ?b))", + "(select ?y (select ?x ?a ?c) (select ?x ?b ?c)) ==> (select ?x (select ?y ?a ?b) ?c)", + "(select ?x (select ?y ?a ?b) ?c) ==> (select ?y (select ?x ?a ?c) (select ?x ?b ?c))", + "(select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b)) ==> (select (- (select ?x ?y ?z)) ?a ?b)", + "(select (- (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b))", + "(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b)", + "(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b))", + "(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w)", + "(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select ?c (!= ?a ?x) (!= ?b ?x)) ==> (!= (select ?c ?a ?b) ?x)", + "(!= (select ?c ?a ?b) ?x) ==> (select ?c (!= ?a ?x) (!= ?b ?x))", + "(select ?c (!= ?x ?a) (!= ?x ?b)) ==> (!= ?x (select ?c ?a ?b))", + "(!= ?x (select ?c ?a ?b)) ==> (select ?c (!= ?x ?a) (!= ?x ?b))", + "(select ?c (== ?a ?x) (== ?b ?x)) ==> (== (select ?c ?a ?b) ?x)", + "(== (select ?c ?a ?b) ?x) ==> (select ?c (== ?a ?x) (== ?b ?x))", + "(select ?c (== ?x ?a) (== ?x ?b)) ==> (== ?x (select ?c ?a ?b))", + "(== ?x (select ?c ?a ?b)) ==> (select ?c (== ?x ?a) (== ?x ?b))", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(select (! ?x) ?z ?y) ==> (select ?x ?y ?z)", + "(select ?x ?y ?z) ==> (select (! ?x) ?z ?y)", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(min ?x ?y) ==> (select (< ?x ?y) ?x ?y)", + "(/ 0 ?x) ==> 0" + ] +} diff --git a/jfp/cs1/halide/Enumo-LLM-None-2-derive.json b/jfp/cs1/halide/Enumo-LLM-None-2-derive.json new file mode 100644 index 00000000..bb305ac1 --- /dev/null +++ b/jfp/cs1/halide/Enumo-LLM-None-2-derive.json @@ -0,0 +1,241 @@ +{ + "duration": { + "secs": 7, + "nanos": 377888125 + }, + "num_rules": 840, + "num_against": 229, + "can": [ + "(* 0 ?x) ==> 0", + "(&& 0 ?x) ==> 0", + "(|| 1 ?x) ==> 1", + "(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w))", + "(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w))", + "(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w))", + "(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w))", + "(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z))", + "(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z)", + "(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z))", + "(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z)", + "(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z))", + "(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z)", + "(max (max ?x ?y) ?z) ==> (max ?x (max ?y ?z))", + "(max ?x (max ?y ?z)) ==> (max (max ?x ?y) ?z)", + "(min (min ?x ?y) ?z) ==> (min ?x (min ?y ?z))", + "(min ?x (min ?y ?z)) ==> (min (min ?x ?y) ?z)", + "(+ ?x (+ ?y ?z)) ==> (+ (+ ?x ?y) ?z)", + "(+ (+ ?x ?y) ?z) ==> (+ ?x (+ ?y ?z))", + "(* ?x (* ?y ?z)) ==> (* (* ?x ?y) ?z)", + "(* (* ?x ?y) ?z) ==> (* ?x (* ?y ?z))", + "(^ (^ ?x ?y) ?z) ==> (^ ?x (^ ?y ?z))", + "(^ ?x (^ ?y ?z)) ==> (^ (^ ?x ?y) ?z)", + "(|| (|| ?x ?y) ?z) ==> (|| ?x (|| ?y ?z))", + "(|| ?x (|| ?y ?z)) ==> (|| (|| ?x ?y) ?z)", + "(&& (&& ?x ?y) ?z) ==> (&& ?x (&& ?y ?z))", + "(&& ?x (&& ?y ?z)) ==> (&& (&& ?x ?y) ?z)", + "(- (- ?x ?y) ?z) ==> (- ?x (+ ?y ?z))", + "(- ?x (+ ?y ?z)) ==> (- (- ?x ?y) ?z)", + "(+ ?x (- ?y ?z)) ==> (- (+ ?x ?y) ?z)", + "(- (+ ?x ?y) ?z) ==> (+ ?x (- ?y ?z))", + "(<= ?x (+ ?z ?y)) ==> (<= (- ?x ?y) ?z)", + "(<= (- ?x ?y) ?z) ==> (<= ?x (+ ?z ?y))", + "(< ?x (+ ?z ?y)) ==> (< (- ?x ?y) ?z)", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(<= ?x (- ?z ?y)) ==> (<= (+ ?x ?y) ?z)", + "(<= (+ ?x ?y) ?z) ==> (<= ?x (- ?z ?y))", + "(< ?x (- ?z ?y)) ==> (< (+ ?x ?y) ?z)", + "(< (+ ?x ?y) ?z) ==> (< ?x (- ?z ?y))", + "(== ?x (+ ?z ?y)) ==> (== (- ?x ?y) ?z)", + "(== (- ?x ?y) ?z) ==> (== ?x (+ ?z ?y))", + "(== ?x (- ?z ?y)) ==> (== (+ ?x ?y) ?z)", + "(== (+ ?x ?y) ?z) ==> (== ?x (- ?z ?y))", + "(select (== ?x ?y) ?z ?z) ==> ?z", + "(+ (- ?x ?y) (- ?z)) ==> (- ?x (+ ?y ?z))", + "(- ?x (+ ?y ?z)) ==> (+ (- ?x ?y) (- ?z))", + "(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y))", + "(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y))", + "(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y))", + "(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y))", + "(+ (* ?y ?x) (* ?z ?x)) ==> (* (+ ?y ?z) ?x)", + "(* (+ ?y ?z) ?x) ==> (+ (* ?y ?x) (* ?z ?x))", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z))", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z))", + "(- (* ?x ?z) (* ?y ?z)) ==> (* (- ?x ?y) ?z)", + "(* (- ?x ?y) ?z) ==> (- (* ?x ?z) (* ?y ?z))", + "(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (- ?y ?z))", + "(* ?x (- ?y ?z)) ==> (- (* ?x ?y) (* ?x ?z))", + "(- (* ?x ?z) (* ?y ?z)) ==> (* (+ ?x (- ?y)) ?z)", + "(* (+ ?x (- ?y)) ?z) ==> (- (* ?x ?z) (* ?y ?z))", + "(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (+ ?y (- ?z)))", + "(* ?x (+ ?y (- ?z))) ==> (- (* ?x ?y) (* ?x ?z))", + "(+ ?a (select ?c ?b ?c)) ==> (select ?c (+ ?a ?b) (+ ?a ?c))", + "(select ?c (+ ?a ?b) (+ ?a ?c)) ==> (+ ?a (select ?c ?b ?c))", + "(select ?c (- ?x 0) ?y) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (- ?x 0) ?y)", + "(select ?c (* 1 ?x) ?y) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (* 1 ?x) ?y)", + "(select ?c ?x (+ 0 ?y)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c ?x (+ 0 ?y))", + "(select ?c (* ?x 1) (* ?y 1)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (* ?x 1) (* ?y 1))", + "(select ?c (+ ?x 0) (+ ?y 0)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (+ ?x 0) (+ ?y 0))", + "(!= (select ?c ?a ?b) (select ?c ?a ?b)) ==> 0", + "(== (select ?c ?a ?b) (select ?c ?a ?b)) ==> 1", + "(max ?y ?x) ==> (max ?x ?y)", + "(max ?x ?y) ==> (max ?y ?x)", + "(min ?y ?x) ==> (min ?x ?y)", + "(min ?x ?y) ==> (min ?y ?x)", + "(* ?y ?x) ==> (* ?x ?y)", + "(* ?x ?y) ==> (* ?y ?x)", + "(+ ?y ?x) ==> (+ ?x ?y)", + "(+ ?x ?y) ==> (+ ?y ?x)", + "(^ ?y ?x) ==> (^ ?x ?y)", + "(^ ?x ?y) ==> (^ ?y ?x)", + "(|| ?y ?x) ==> (|| ?x ?y)", + "(|| ?x ?y) ==> (|| ?y ?x)", + "(&& ?y ?x) ==> (&& ?x ?y)", + "(&& ?x ?y) ==> (&& ?y ?x)", + "(!= ?y ?x) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= ?y ?x)", + "(== ?y ?x) ==> (== ?x ?y)", + "(== ?x ?y) ==> (== ?y ?x)", + "(select ?x ?y ?y) ==> ?y", + "(- ?y ?x) ==> (- (- ?x ?y))", + "(- (- ?x ?y)) ==> (- ?y ?x)", + "(- ?x ?y) ==> (+ (- ?y) ?x)", + "(+ (- ?y) ?x) ==> (- ?x ?y)", + "(+ ?x ?y) ==> (- ?x (- ?y))", + "(- ?x (- ?y)) ==> (+ ?x ?y)", + "(== ?x ?y) ==> (! (!= ?x ?y))", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(!= ?x ?y) ==> (! (== ?x ?y))", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(- (* ?x ?y)) ==> (* (- ?x) ?y)", + "(* (- ?x) ?y) ==> (- (* ?x ?y))", + "(^ ?x (! ?y)) ==> (! (^ ?x ?y))", + "(! (^ ?x ?y)) ==> (^ ?x (! ?y))", + "(min ?x (max ?x ?y)) ==> ?x", + "(max ?x (min ?x ?y)) ==> ?x", + "(- (+ ?x ?y) ?y) ==> ?x", + "(|| ?x ?y) ==> (|| (|| ?x ?y) ?x)", + "(|| (|| ?x ?y) ?x) ==> (|| ?x ?y)", + "(&& ?x ?y) ==> (&& (&& ?x ?y) ?x)", + "(&& (&& ?x ?y) ?x) ==> (&& ?x ?y)", + "(* ?x ?y) ==> (* (- ?x) (- ?y))", + "(* (- ?x) (- ?y)) ==> (* ?x ?y)", + "(!= (- ?x) (- ?y)) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= (- ?x) (- ?y))", + "(<= ?y ?x) ==> (== (min ?x ?y) ?y)", + "(== (min ?x ?y) ?y) ==> (<= ?y ?x)", + "(&& (! ?x) (! ?y)) ==> (! (|| ?x ?y))", + "(! (|| ?x ?y)) ==> (&& (! ?x) (! ?y))", + "(|| (! ?x) (! ?y)) ==> (! (&& ?x ?y))", + "(! (&& ?x ?y)) ==> (|| (! ?x) (! ?y))", + "(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y)", + "(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x))", + "(select 0 ?x ?y) ==> ?y", + "(+ ?x (* -1 ?y)) ==> (- ?x ?y)", + "(- ?x ?y) ==> (+ ?x (* -1 ?y))", + "(< ?x (+ ?y 1)) ==> (<= ?x ?y)", + "(<= ?x ?y) ==> (< ?x (+ ?y 1))", + "(<= (+ ?x 1) ?y) ==> (< ?x ?y)", + "(< ?x ?y) ==> (<= (+ ?x 1) ?y)", + "(!= (- ?x 1) (- ?y 1)) ==> (!= ?x ?y)", + "(!= ?x ?y) ==> (!= (- ?x 1) (- ?y 1))", + "(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0", + "(<= ?x ?y) ==> (select (<= ?x ?y) 1 0)", + "(select (<= ?x ?y) 1 0) ==> (<= ?x ?y)", + "(!= ?x ?y) ==> (select (!= ?x ?y) 1 0)", + "(select (!= ?x ?y) 1 0) ==> (!= ?x ?y)", + "(<= ?x ?x) ==> 1", + "(< ?x ?x) ==> 0", + "(^ ?x ?x) ==> 0", + "(- ?x ?x) ==> 0", + "(! ?x) ==> (== 0 ?x)", + "(== 0 ?x) ==> (! ?x)", + "(! ?x) ==> (^ ?x 1)", + "(^ ?x 1) ==> (! ?x)", + "(&& (! ?x) ?x) ==> 0", + "(|| (! ?x) ?x) ==> 1", + "(! ?x) ==> (! (|| ?x 0))", + "(! (|| ?x 0)) ==> (! ?x)", + "(* 3 ?x) ==> (+ ?x (+ ?x ?x))", + "(+ ?x (+ ?x ?x)) ==> (* 3 ?x)", + "(! ?c) ==> (select ?c 0 1)", + "(select ?c 0 1) ==> (! ?c)", + "(- (min 0 ?x)) ==> (max (- ?x) 0)", + "(max (- ?x) 0) ==> (- (min 0 ?x))", + "(- (max 0 ?x)) ==> (min (- ?x) 0)", + "(min (- ?x) 0) ==> (- (max 0 ?x))" + ], + "cannot": [ + "(max 1 ?x) ==> (select (<= ?x 1) 1 ?x)", + "(select (<= ?x 1) 1 ?x) ==> (max 1 ?x)", + "(select ?c (/ ?x ?y) (/ ?x ?z)) ==> (/ ?x (select ?c ?y ?z))", + "(/ ?x (select ?c ?y ?z)) ==> (select ?c (/ ?x ?y) (/ ?x ?z))", + "(select ?c (< ?x ?y) (< ?x ?z)) ==> (< ?x (select ?c ?y ?z))", + "(< ?x (select ?c ?y ?z)) ==> (select ?c (< ?x ?y) (< ?x ?z))", + "(select ?c (^ ?a ?x) (^ ?b ?x)) ==> (^ (select ?c ?a ?b) ?x)", + "(^ (select ?c ?a ?b) ?x) ==> (select ?c (^ ?a ?x) (^ ?b ?x))", + "(select ?c (&& ?a ?x) (&& ?b ?x)) ==> (&& (select ?c ?a ?b) ?x)", + "(&& (select ?c ?a ?b) ?x) ==> (select ?c (&& ?a ?x) (&& ?b ?x))", + "(|| (select ?c ?a ?b) ?x) ==> (select ?c (|| ?a ?x) (|| ?b ?x))", + "(select ?c (|| ?a ?x) (|| ?b ?x)) ==> (|| (select ?c ?a ?b) ?x)", + "(select ?c (< ?a ?x) (< ?b ?x)) ==> (< (select ?c ?a ?b) ?x)", + "(< (select ?c ?a ?b) ?x) ==> (select ?c (< ?a ?x) (< ?b ?x))", + "(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f))", + "(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f)))", + "(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b))", + "(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b))", + "(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w)", + "(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w))", + "(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w)", + "(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w))", + "(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y))", + "(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y))", + "(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y))", + "(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y))", + "(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b)", + "(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b))", + "(select ?z (select ?x ?y ?a) (select ?x ?y ?b)) ==> (select ?x ?y (select ?z ?a ?b))", + "(select ?x ?y (select ?z ?a ?b)) ==> (select ?z (select ?x ?y ?a) (select ?x ?y ?b))", + "(select ?y (select ?x ?a ?c) (select ?x ?b ?c)) ==> (select ?x (select ?y ?a ?b) ?c)", + "(select ?x (select ?y ?a ?b) ?c) ==> (select ?y (select ?x ?a ?c) (select ?x ?b ?c))", + "(select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b)) ==> (select (- (select ?x ?y ?z)) ?a ?b)", + "(select (- (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b))", + "(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b)", + "(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b))", + "(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w)", + "(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b)", + "(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b)", + "(select ?c (!= ?a ?x) (!= ?b ?x)) ==> (!= (select ?c ?a ?b) ?x)", + "(!= (select ?c ?a ?b) ?x) ==> (select ?c (!= ?a ?x) (!= ?b ?x))", + "(select ?c (!= ?x ?a) (!= ?x ?b)) ==> (!= ?x (select ?c ?a ?b))", + "(!= ?x (select ?c ?a ?b)) ==> (select ?c (!= ?x ?a) (!= ?x ?b))", + "(select ?c (== ?a ?x) (== ?b ?x)) ==> (== (select ?c ?a ?b) ?x)", + "(== (select ?c ?a ?b) ?x) ==> (select ?c (== ?a ?x) (== ?b ?x))", + "(select ?c (== ?x ?a) (== ?x ?b)) ==> (== ?x (select ?c ?a ?b))", + "(== ?x (select ?c ?a ?b)) ==> (select ?c (== ?x ?a) (== ?x ?b))", + "(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z))", + "(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z)", + "(select (! ?x) ?z ?y) ==> (select ?x ?y ?z)", + "(select ?x ?y ?z) ==> (select (! ?x) ?z ?y)", + "(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b))", + "(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b))", + "(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y)", + "(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1))", + "(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y)", + "(max ?x ?y) ==> (select (< ?y ?x) ?x ?y)", + "(select (< ?y ?x) ?x ?y) ==> (max ?x ?y)", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(min ?x ?y) ==> (select (< ?x ?y) ?x ?y)", + "(/ 0 ?x) ==> 0" + ] +} diff --git a/jfp/cs1/halide/LLM-1-candidates.rules b/jfp/cs1/halide/LLM-1-candidates.rules new file mode 100644 index 00000000..3c6195a0 --- /dev/null +++ b/jfp/cs1/halide/LLM-1-candidates.rules @@ -0,0 +1,677 @@ +(== ?x ?x) ==> true +(! true) ==> false +false ==> (! true) +(! false) ==> true +true ==> (! false) +(&& true ?x) ==> ?x +?x ==> (&& true ?x) +(&& false ?x) ==> false +(&& ?x true) ==> ?x +?x ==> (&& ?x true) +(&& ?x false) ==> false +(&& ?x ?x) ==> ?x +?x ==> (&& ?x ?x) +(&& ?x (&& ?y ?z)) ==> (&& (&& ?x ?y) ?z) +(&& (&& ?x ?y) ?z) ==> (&& ?x (&& ?y ?z)) +(|| true ?x) ==> true +(|| false ?x) ==> ?x +?x ==> (|| false ?x) +(|| ?x true) ==> true +(|| ?x false) ==> ?x +?x ==> (|| ?x false) +(|| ?x ?x) ==> ?x +?x ==> (|| ?x ?x) +(|| ?x (|| ?y ?z)) ==> (|| (|| ?x ?y) ?z) +(|| (|| ?x ?y) ?z) ==> (|| ?x (|| ?y ?z)) +(^ true ?x) ==> (! ?x) +(! ?x) ==> (^ true ?x) +(^ false ?x) ==> ?x +?x ==> (^ false ?x) +(^ ?x true) ==> (! ?x) +(! ?x) ==> (^ ?x true) +(^ ?x false) ==> ?x +?x ==> (^ ?x false) +(^ ?x ?x) ==> false +(^ ?x (^ ?y ?z)) ==> (^ (^ ?x ?y) ?z) +(^ (^ ?x ?y) ?z) ==> (^ ?x (^ ?y ?z)) +(! (! ?x)) ==> ?x +?x ==> (! (! ?x)) +(! (&& ?x ?y)) ==> (|| (! ?x) (! ?y)) +(|| (! ?x) (! ?y)) ==> (! (&& ?x ?y)) +(! (|| ?x ?y)) ==> (&& (! ?x) (! ?y)) +(&& (! ?x) (! ?y)) ==> (! (|| ?x ?y)) +(! (^ ?x ?y)) ==> (^ (! ?x) ?y) +(^ (! ?x) ?y) ==> (! (^ ?x ?y)) +(! (^ ?x ?y)) ==> (^ ?x (! ?y)) +(^ ?x (! ?y)) ==> (! (^ ?x ?y)) +(! (== ?x ?y)) ==> (!= ?x ?y) +(!= ?x ?y) ==> (! (== ?x ?y)) +(! (!= ?x ?y)) ==> (== ?x ?y) +(== ?x ?y) ==> (! (!= ?x ?y)) +(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x)) +(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y) +(== ?x ?y) ==> (== ?y ?x) +(== ?y ?x) ==> (== ?x ?y) +(!= ?x ?y) ==> (!= ?y ?x) +(!= ?y ?x) ==> (!= ?x ?y) +(&& ?x ?y) ==> (&& ?y ?x) +(&& ?y ?x) ==> (&& ?x ?y) +(|| ?x ?y) ==> (|| ?y ?x) +(|| ?y ?x) ==> (|| ?x ?y) +(^ ?x ?y) ==> (^ ?y ?x) +(^ ?y ?x) ==> (^ ?x ?y) +(+ ?x ?y) ==> (+ ?y ?x) +(+ ?y ?x) ==> (+ ?x ?y) +(* ?x ?y) ==> (* ?y ?x) +(* ?y ?x) ==> (* ?x ?y) +(min ?x ?y) ==> (min ?y ?x) +(min ?y ?x) ==> (min ?x ?y) +(max ?x ?y) ==> (max ?y ?x) +(max ?y ?x) ==> (max ?x ?y) +(+ ?x 0) ==> ?x +?x ==> (+ ?x 0) +(* ?x 0) ==> 0 +(* ?x 1) ==> ?x +?x ==> (* ?x 1) +(- ?x 0) ==> ?x +?x ==> (- ?x 0) +(- ?x ?x) ==> 0 +(- (- ?x)) ==> ?x +?x ==> (- (- ?x)) +(- (+ ?x ?y)) ==> (+ (- ?x) (- ?y)) +(+ (- ?x) (- ?y)) ==> (- (+ ?x ?y)) +(* ?x (+ ?y ?z)) ==> (+ (* ?x ?y) (* ?x ?z)) +(+ (* ?x ?y) (* ?x ?z)) ==> (* ?x (+ ?y ?z)) +(* (+ ?x ?y) ?z) ==> (+ (* ?x ?z) (* ?y ?z)) +(+ (* ?x ?z) (* ?y ?z)) ==> (* (+ ?x ?y) ?z) +(* ?x (- ?y)) ==> (- (* ?x ?y)) +(- (* ?x ?y)) ==> (* ?x (- ?y)) +(* (- ?x) ?y) ==> (- (* ?x ?y)) +(- (* ?x ?y)) ==> (* (- ?x) ?y) +(- ?x (- ?y)) ==> (+ ?x ?y) +(+ ?x ?y) ==> (- ?x (- ?y)) +(- ?x ?y) ==> (+ ?x (- ?y)) +(+ ?x (- ?y)) ==> (- ?x ?y) +(* (* ?x ?y) ?z) ==> (* ?x (* ?y ?z)) +(* ?x (* ?y ?z)) ==> (* (* ?x ?y) ?z) +(+ (+ ?x ?y) ?z) ==> (+ ?x (+ ?y ?z)) +(+ ?x (+ ?y ?z)) ==> (+ (+ ?x ?y) ?z) +(min ?x (min ?y ?z)) ==> (min (min ?x ?y) ?z) +(min (min ?x ?y) ?z) ==> (min ?x (min ?y ?z)) +(max ?x (max ?y ?z)) ==> (max (max ?x ?y) ?z) +(max (max ?x ?y) ?z) ==> (max ?x (max ?y ?z)) +(min ?x ?x) ==> ?x +?x ==> (min ?x ?x) +(max ?x ?x) ==> ?x +?x ==> (max ?x ?x) +(< ?x ?y) ==> (< (- ?x) (- ?y)) +(< (- ?x) (- ?y)) ==> (< ?x ?y) +(<= ?x ?y) ==> (<= (- ?x) (- ?y)) +(<= (- ?x) (- ?y)) ==> (<= ?x ?y) +(== ?x ?y) ==> (== (- ?x) (- ?y)) +(== (- ?x) (- ?y)) ==> (== ?x ?y) +(!= ?x ?y) ==> (!= (- ?x) (- ?y)) +(!= (- ?x) (- ?y)) ==> (!= ?x ?y) +(select true ?x ?y) ==> ?x +(select false ?x ?y) ==> ?y +(select ?c ?x ?x) ==> ?x +(select true ?x ?y) ==> (select (! false) ?x ?y) +(select (! false) ?x ?y) ==> (select true ?x ?y) +(select false ?x ?y) ==> (select (! true) ?x ?y) +(select (! true) ?x ?y) ==> (select false ?x ?y) +(select ?c ?x ?y) ==> (select (! ?c) ?y ?x) +(select (! ?c) ?y ?x) ==> (select ?c ?x ?y) +(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y)) +(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y)) +(* (- 1) ?x) ==> (- ?x) +(- ?x) ==> (* (- 1) ?x) +(* ?x (- 1)) ==> (- ?x) +(- ?x) ==> (* ?x (- 1)) +(== ?x 0) ==> (!= (min ?x 0) (max ?x 0)) +(!= (min ?x 0) (max ?x 0)) ==> (== ?x 0) +(!= ?x 0) ==> (! (== ?x 0)) +(! (== ?x 0)) ==> (!= ?x 0) +(< ?x ?y) ==> (<= (+ ?x 1) ?y) +(<= (+ ?x 1) ?y) ==> (< ?x ?y) +(<= ?x ?y) ==> (< ?x (+ ?y 1)) +(< ?x (+ ?y 1)) ==> (<= ?x ?y) +(== ?x ?y) ==> (<= ?x ?y) +(<= ?x ?y) ==> (== ?x ?y) +(== ?x ?y) ==> (< ?x (+ ?y 1)) +(< ?x (+ ?y 1)) ==> (== ?x ?y) +(+ ?x (- ?x)) ==> 0 +(select (== ?x ?y) true false) ==> (== ?x ?y) +(== ?x ?y) ==> (select (== ?x ?y) true false) +(select (!= ?x ?y) true false) ==> (!= ?x ?y) +(!= ?x ?y) ==> (select (!= ?x ?y) true false) +(select (< ?x ?y) true false) ==> (< ?x ?y) +(< ?x ?y) ==> (select (< ?x ?y) true false) +(select (<= ?x ?y) true false) ==> (<= ?x ?y) +(<= ?x ?y) ==> (select (<= ?x ?y) true false) +(|| ?x (&& ?x ?y)) ==> ?x +(&& ?x (|| ?x ?y)) ==> ?x +(|| ?x (! ?x)) ==> true +(&& ?x (! ?x)) ==> false +(^ ?x (! ?x)) ==> true +(min ?x ?y) ==> (select (< ?x ?y) ?x ?y) +(select (< ?x ?y) ?x ?y) ==> (min ?x ?y) +(min ?x ?y) ==> (- (- (max (- ?x) (- ?y)))) +(- (- (max (- ?x) (- ?y)))) ==> (min ?x ?y) +(max ?x ?y) ==> (- (- (min (- ?x) (- ?y)))) +(- (- (min (- ?x) (- ?y)))) ==> (max ?x ?y) +(* ?x (+ ?y (- ?z))) ==> (- (* ?x ?y) (* ?x ?z)) +(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (+ ?y (- ?z))) +(* (+ ?x (- ?y)) ?z) ==> (- (* ?x ?z) (* ?y ?z)) +(- (* ?x ?z) (* ?y ?z)) ==> (* (+ ?x (- ?y)) ?z) +(- (+ ?x ?y) ?z) ==> (+ ?x (- ?y ?z)) +(+ ?x (- ?y ?z)) ==> (- (+ ?x ?y) ?z) +(- ?x (+ ?y ?z)) ==> (- (- ?x ?y) ?z) +(- (- ?x ?y) ?z) ==> (- ?x (+ ?y ?z)) +(- ?x (+ ?y ?z)) ==> (+ (- ?x ?y) (- ?z)) +(+ (- ?x ?y) (- ?z)) ==> (- ?x (+ ?y ?z)) +(+ (- ?x) ?y) ==> (- ?y ?x) +(- ?y ?x) ==> (+ (- ?x) ?y) +(+ (- ?x) (- ?y)) ==> (- (- ?x) ?y) +(- (- ?x) ?y) ==> (+ (- ?x) (- ?y)) +(/ ?x 1) ==> ?x +?x ==> (/ ?x 1) +(/ (- ?x) ?y) ==> (- (/ ?x ?y)) +(- (/ ?x ?y)) ==> (/ (- ?x) ?y) +(/ ?x (- ?y)) ==> (- (/ ?x ?y)) +(- (/ ?x ?y)) ==> (/ ?x (- ?y)) +(/ (- ?x) (- ?y)) ==> (/ ?x ?y) +(/ ?x ?y) ==> (/ (- ?x) (- ?y)) +(* ?x (/ 1 ?y)) ==> (/ ?x ?y) +(/ ?x ?y) ==> (* ?x (/ 1 ?y)) +(* (/ 1 ?x) ?y) ==> (/ ?y ?x) +(/ ?y ?x) ==> (* (/ 1 ?x) ?y) +(/ (* ?x ?y) ?z) ==> (* ?x (/ ?y ?z)) +(* ?x (/ ?y ?z)) ==> (/ (* ?x ?y) ?z) +(/ ?x (* ?y ?z)) ==> (* (/ ?x ?y) (/ 1 ?z)) +(* (/ ?x ?y) (/ 1 ?z)) ==> (/ ?x (* ?y ?z)) +(/ (/ ?x ?y) ?z) ==> (/ ?x (* ?y ?z)) +(/ ?x (* ?y ?z)) ==> (/ (/ ?x ?y) ?z) +(/ ?x (/ ?y ?z)) ==> (* ?x (/ ?z ?y)) +(* ?x (/ ?z ?y)) ==> (/ ?x (/ ?y ?z)) +(- ?x) ==> (* -1 ?x) +(* -1 ?x) ==> (- ?x) +(select ?c 0 1) ==> (select (! ?c) 1 0) +(select (! ?c) 1 0) ==> (select ?c 0 1) +(select (== ?x ?y) ?z ?z) ==> ?z +(select (< ?y ?x) ?x ?y) ==> (max ?x ?y) +(max ?x ?y) ==> (select (< ?y ?x) ?x ?y) +(&& ?x ?y) ==> (select ?x ?y false) +(select ?x ?y false) ==> (&& ?x ?y) +(|| ?x ?y) ==> (select ?x true ?y) +(select ?x true ?y) ==> (|| ?x ?y) +(^ ?x ?y) ==> (select ?x (! ?y) ?y) +(select ?x (! ?y) ?y) ==> (^ ?x ?y) +(<= ?x ?y) ==> (select (< ?x ?y) true (== ?x ?y)) +(select (< ?x ?y) true (== ?x ?y)) ==> (<= ?x ?y) +(select ?c ?x ?y) ==> (|| (&& ?c ?x) (&& (! ?c) ?y)) +(|| (&& ?c ?x) (&& (! ?c) ?y)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (&& (|| ?c ?y) (|| (! ?c) ?x)) +(&& (|| ?c ?y) (|| (! ?c) ?x)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c ?x (+ 0 ?y)) +(select ?c ?x (+ 0 ?y)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c ?x (* 1 ?y)) +(select ?c ?x (* 1 ?y)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c ?x (- ?y 0)) +(select ?c ?x (- ?y 0)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (+ ?x 0) ?y) +(select ?c (+ ?x 0) ?y) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (* 1 ?x) ?y) +(select ?c (* 1 ?x) ?y) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (- ?x 0) ?y) +(select ?c (- ?x 0) ?y) ==> (select ?c ?x ?y) +(select ?c 0 0) ==> 0 +(select ?c 1 1) ==> 1 +(select (== ?x ?y) 0 1) ==> (! (== ?x ?y)) +(! (== ?x ?y)) ==> (select (== ?x ?y) 0 1) +(select (!= ?x ?y) 0 1) ==> (== ?x ?y) +(== ?x ?y) ==> (select (!= ?x ?y) 0 1) +(select (< ?x ?y) 0 1) ==> (! (< ?x ?y)) +(! (< ?x ?y)) ==> (select (< ?x ?y) 0 1) +(select (<= ?x ?y) 0 1) ==> (! (<= ?x ?y)) +(! (<= ?x ?y)) ==> (select (<= ?x ?y) 0 1) +(select (== ?x ?y) 1 0) ==> (== ?x ?y) +(== ?x ?y) ==> (select (== ?x ?y) 1 0) +(select (!= ?x ?y) 1 0) ==> (!= ?x ?y) +(!= ?x ?y) ==> (select (!= ?x ?y) 1 0) +(select (< ?x ?y) 1 0) ==> (< ?x ?y) +(< ?x ?y) ==> (select (< ?x ?y) 1 0) +(select (<= ?x ?y) 1 0) ==> (<= ?x ?y) +(<= ?x ?y) ==> (select (<= ?x ?y) 1 0) +(+ ?x (- (+ ?x ?y))) ==> (- ?y) +(- (+ ?x ?y) ?x) ==> ?y +(- (+ ?x ?y) ?y) ==> ?x +(- (- ?x ?y)) ==> (- ?y ?x) +(- ?y ?x) ==> (- (- ?x ?y)) +(- (- ?x) (- ?y)) ==> (- ?y ?x) +(- ?y ?x) ==> (- (- ?x) (- ?y)) +(- ?x) ==> (+ 0 (- ?x)) +(+ 0 (- ?x)) ==> (- ?x) +(- ?x) ==> (* ?x -1) +(* ?x -1) ==> (- ?x) +(* -1 -1) ==> 1 +1 ==> (* -1 -1) +(select true true false) ==> true +true ==> (select true true false) +(select true false true) ==> false +false ==> (select true false true) +(select false true false) ==> false +false ==> (select false true false) +(select false false true) ==> true +true ==> (select false false true) +(select true true true) ==> true +true ==> (select true true true) +(select true false false) ==> false +false ==> (select true false false) +(select false true true) ==> true +true ==> (select false true true) +(select false false false) ==> false +false ==> (select false false false) +(|| ?x ?y) ==> (select ?y ?x true) +(select ?y ?x true) ==> (|| ?x ?y) +(== (+ ?x ?y) ?z) ==> (== ?x (- ?z ?y)) +(== ?x (- ?z ?y)) ==> (== (+ ?x ?y) ?z) +(== (- ?x ?y) ?z) ==> (== ?x (+ ?z ?y)) +(== ?x (+ ?z ?y)) ==> (== (- ?x ?y) ?z) +(== (* ?x ?y) ?z) ==> (== ?x (/ ?z ?y)) +(== ?x (/ ?z ?y)) ==> (== (* ?x ?y) ?z) +(== (/ ?x ?y) ?z) ==> (== ?x (* ?z ?y)) +(== ?x (* ?z ?y)) ==> (== (/ ?x ?y) ?z) +(< (+ ?x ?y) ?z) ==> (< ?x (- ?z ?y)) +(< ?x (- ?z ?y)) ==> (< (+ ?x ?y) ?z) +(<= (+ ?x ?y) ?z) ==> (<= ?x (- ?z ?y)) +(<= ?x (- ?z ?y)) ==> (<= (+ ?x ?y) ?z) +(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y)) +(< ?x (+ ?z ?y)) ==> (< (- ?x ?y) ?z) +(<= (- ?x ?y) ?z) ==> (<= ?x (+ ?z ?y)) +(<= ?x (+ ?z ?y)) ==> (<= (- ?x ?y) ?z) +(select true 1 0) ==> 1 +1 ==> (select true 1 0) +(select false 1 0) ==> 0 +0 ==> (select false 1 0) +(select true 0 1) ==> 0 +0 ==> (select true 0 1) +(select false 0 1) ==> 1 +1 ==> (select false 0 1) +(select true 0 0) ==> 0 +0 ==> (select true 0 0) +(select false 0 0) ==> 0 +0 ==> (select false 0 0) +(select true 1 1) ==> 1 +1 ==> (select true 1 1) +(select false 1 1) ==> 1 +1 ==> (select false 1 1) +(select (== ?x ?y) false true) ==> (!= ?x ?y) +(!= ?x ?y) ==> (select (== ?x ?y) false true) +(select (!= ?x ?y) false true) ==> (== ?x ?y) +(== ?x ?y) ==> (select (!= ?x ?y) false true) +(select ?c 0 1) ==> ?c +?c ==> (select ?c 0 1) +(select ?c 1 0) ==> (! ?c) +(! ?c) ==> (select ?c 1 0) +(* ?x (- ?y ?z)) ==> (- (* ?x ?y) (* ?x ?z)) +(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (- ?y ?z)) +(* (- ?x ?y) ?z) ==> (- (* ?x ?z) (* ?y ?z)) +(- (* ?x ?z) (* ?y ?z)) ==> (* (- ?x ?y) ?z) +(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z)) +(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z)) +(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z)) +(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z)) +(min ?x ?y) ==> (- ?x (- ?x ?y)) +(- ?x (- ?x ?y)) ==> (min ?x ?y) +(max ?x ?y) ==> (+ ?x (- ?y ?x)) +(+ ?x (- ?y ?x)) ==> (max ?x ?y) +(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y) +(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y) +(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z) +(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w) +(== ?x ?y) ==> (== (+ ?x 1) (+ ?y 1)) +(== (+ ?x 1) (+ ?y 1)) ==> (== ?x ?y) +(== ?x ?y) ==> (== (- ?x 1) (- ?y 1)) +(== (- ?x 1) (- ?y 1)) ==> (== ?x ?y) +(!= ?x ?y) ==> (!= (+ ?x 1) (+ ?y 1)) +(!= (+ ?x 1) (+ ?y 1)) ==> (!= ?x ?y) +(!= ?x ?y) ==> (!= (- ?x 1) (- ?y 1)) +(!= (- ?x 1) (- ?y 1)) ==> (!= ?x ?y) +(< ?x ?y) ==> (< (+ ?x 1) (+ ?y 1)) +(< (+ ?x 1) (+ ?y 1)) ==> (< ?x ?y) +(< ?x ?y) ==> (< (- ?x 1) (- ?y 1)) +(< (- ?x 1) (- ?y 1)) ==> (< ?x ?y) +(<= ?x ?y) ==> (<= (+ ?x 1) (+ ?y 1)) +(<= (+ ?x 1) (+ ?y 1)) ==> (<= ?x ?y) +(<= ?x ?y) ==> (<= (- ?x 1) (- ?y 1)) +(<= (- ?x 1) (- ?y 1)) ==> (<= ?x ?y) +(min ?x ?y) ==> (select (&& (< ?x ?y) true) ?x ?y) +(select (&& (< ?x ?y) true) ?x ?y) ==> (min ?x ?y) +(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z) +(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z)) +(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z) +(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z)) +(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z) +(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z)) +(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z) +(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z)) +(select ?c ?x ?y) ==> (min (select ?c ?x infinity) (select ?c ?y infinity)) +(min (select ?c ?x infinity) (select ?c ?y infinity)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (max (select ?c ?x neg-infinity) (select ?c ?y neg-infinity)) +(max (select ?c ?x neg-infinity) (select ?c ?y neg-infinity)) ==> (select ?c ?x ?y) +(select (== ?x ?y) (== ?z ?w) false) ==> (&& (== ?x ?y) (== ?z ?w)) +(&& (== ?x ?y) (== ?z ?w)) ==> (select (== ?x ?y) (== ?z ?w) false) +(select (!= ?x ?y) (!= ?z ?w) false) ==> (&& (!= ?x ?y) (!= ?z ?w)) +(&& (!= ?x ?y) (!= ?z ?w)) ==> (select (!= ?x ?y) (!= ?z ?w) false) +(select (< ?x ?y) (< ?z ?w) false) ==> (&& (< ?x ?y) (< ?z ?w)) +(&& (< ?x ?y) (< ?z ?w)) ==> (select (< ?x ?y) (< ?z ?w) false) +(select false false true) ==> false +false ==> (select false false true) +(select ?c ?x ?y) ==> (select ?c (+ ?x 0) (+ ?y 0)) +(select ?c (+ ?x 0) (+ ?y 0)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (- ?x 0) (- ?y 0)) +(select ?c (- ?x 0) (- ?y 0)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (* ?x 1) (* ?y 1)) +(select ?c (* ?x 1) (* ?y 1)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1)) +(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y) +(* 0 ?x) ==> 0 +(- 0 ?x) ==> (- ?x) +(- ?x) ==> (- 0 ?x) +(/ 0 ?x) ==> 0 +(== ?x ?y) ==> (|| (&& (!= ?x ?y) (== ?x ?y)) false) +(|| (&& (!= ?x ?y) (== ?x ?y)) false) ==> (== ?x ?y) +(== ?x ?y) ==> (== (max ?x ?y) (max ?y ?x)) +(== (max ?x ?y) (max ?y ?x)) ==> (== ?x ?y) +(== ?x ?y) ==> (== (min ?x ?y) (min ?y ?x)) +(== (min ?x ?y) (min ?y ?x)) ==> (== ?x ?y) +(== (min ?x ?y) ?x) ==> (<= ?x ?y) +(<= ?x ?y) ==> (== (min ?x ?y) ?x) +(== (min ?x ?y) ?y) ==> (<= ?y ?x) +(<= ?y ?x) ==> (== (min ?x ?y) ?y) +(== (select ?cond ?x ?y) ?x) ==> ?cond +(== (&& ?x true) ?x) ==> (== ?x true) +(== ?x true) ==> (== (&& ?x true) ?x) +(== (&& ?x false) false) ==> (== ?x false) +(== ?x false) ==> (== (&& ?x false) false) +(== (|| ?x true) true) ==> (== ?x true) +(== ?x true) ==> (== (|| ?x true) true) +(== (|| ?x false) ?x) ==> (== ?x false) +(== ?x false) ==> (== (|| ?x false) ?x) +(== (! ?x) true) ==> (== ?x false) +(== ?x false) ==> (== (! ?x) true) +(== (! ?x) false) ==> (== ?x true) +(== ?x true) ==> (== (! ?x) false) +(== (select true ?x ?y) ?x) ==> true +(== (select false ?x ?y) ?y) ==> true +(== (max ?x ?y) ?y) ==> (<= ?y ?x) +(<= ?y ?x) ==> (== (max ?x ?y) ?y) +(== (&& ?x false) false) ==> true +(== (&& false ?y) false) ==> true +(== (|| ?x true) true) ==> true +(== (|| true ?y) true) ==> true +(== (+ ?x 0) ?x) ==> true +(== (+ ?x -?x) 0) ==> true +(== (- ?x 0) ?x) ==> true +(== (+ 0 ?x) ?x) ==> true +(== (* 1 ?x) ?x) ==> true +(== (* 0 ?x) 0) ==> true +(== (* -1 ?x) (- ?x)) ==> true +(== (select ?cond (select ?cond ?a ?b) (select ?cond ?c ?d)) (select ?cond ?a ?b)) ==> true +(+ 0 ?x) ==> ?x +?x ==> (+ 0 ?x) +(* 1 ?x) ==> ?x +?x ==> (* 1 ?x) +(* ?x ?x) ==> (^ ?x 2) +(^ ?x 2) ==> (* ?x ?x) +(+ (* ?a ?x) (* ?b ?x)) ==> (* (+ ?a ?b) ?x) +(* (+ ?a ?b) ?x) ==> (+ (* ?a ?x) (* ?b ?x)) +(+ (* ?x ?a) (* ?x ?b)) ==> (* ?x (+ ?a ?b)) +(* ?x (+ ?a ?b)) ==> (+ (* ?x ?a) (* ?x ?b)) +(* (+ ?y ?z) ?x) ==> (+ (* ?y ?x) (* ?z ?x)) +(+ (* ?y ?x) (* ?z ?x)) ==> (* (+ ?y ?z) ?x) +(+ (- ?y) ?x) ==> (- ?x ?y) +(- ?x ?y) ==> (+ (- ?y) ?x) +(* (- ?x) (- ?y)) ==> (* ?x ?y) +(* ?x ?y) ==> (* (- ?x) (- ?y)) +(^ 0 ?x) ==> 0 +(^ 1 ?x) ==> 1 +(^ ?x 0) ==> 1 +(^ ?x 1) ==> ?x +?x ==> (^ ?x 1) +(&& 0 ?x) ==> 0 +(&& ?x 0) ==> 0 +(&& 1 ?x) ==> ?x +?x ==> (&& 1 ?x) +(&& ?x 1) ==> ?x +?x ==> (&& ?x 1) +(|| 0 ?x) ==> ?x +?x ==> (|| 0 ?x) +(|| ?x 0) ==> ?x +?x ==> (|| ?x 0) +(|| 1 ?x) ==> 1 +(|| ?x 1) ==> 1 +(^ ?x 0) ==> ?x +?x ==> (^ ?x 0) +(^ 0 ?x) ==> ?x +?x ==> (^ 0 ?x) +(^ 1 ?x) ==> (! ?x) +(! ?x) ==> (^ 1 ?x) +(^ ?x 1) ==> (! ?x) +(! ?x) ==> (^ ?x 1) +(^ ?x ?x) ==> 0 +(! 0) ==> 1 +1 ==> (! 0) +(! 1) ==> 0 +0 ==> (! 1) +(== ?x ?x) ==> 1 +(!= ?x ?x) ==> 0 +(== ?x 1) ==> ?x +?x ==> (== ?x 1) +(== 1 ?x) ==> ?x +?x ==> (== 1 ?x) +(== ?x 0) ==> (! ?x) +(! ?x) ==> (== ?x 0) +(== 0 ?x) ==> (! ?x) +(! ?x) ==> (== 0 ?x) +(!= ?x 1) ==> (! ?x) +(! ?x) ==> (!= ?x 1) +(!= 1 ?x) ==> (! ?x) +(! ?x) ==> (!= 1 ?x) +(!= ?x 0) ==> ?x +?x ==> (!= ?x 0) +(!= 0 ?x) ==> ?x +?x ==> (!= 0 ?x) +(< ?x ?x) ==> 0 +(<= ?x ?x) ==> 1 +(< ?x (+ ?x 1)) ==> 1 +(<= ?x (+ ?x 1)) ==> 1 +(< ?x 1) ==> (<= ?x 0) +(<= ?x 0) ==> (< ?x 1) +(<= ?x 1) ==> (< ?x 2) +(< ?x 2) ==> (<= ?x 1) +(max (min ?x ?y) ?x) ==> ?x +(min (max ?x ?y) ?x) ==> ?x +(max 0 ?x) ==> (select (< 0 ?x) ?x 0) +(select (< 0 ?x) ?x 0) ==> (max 0 ?x) +(min 0 ?x) ==> (select (< ?x 0) ?x 0) +(select (< ?x 0) ?x 0) ==> (min 0 ?x) +(select 1 ?x ?y) ==> ?x +(select 0 ?x ?y) ==> ?y +(select (! ?c) ?x ?y) ==> (select ?c ?y ?x) +(select ?c ?y ?x) ==> (select (! ?c) ?x ?y) +(select ?c 1 0) ==> ?c +?c ==> (select ?c 1 0) +(select ?c 0 1) ==> (! ?c) +(! ?c) ==> (select ?c 0 1) +(select ?c 1 ?y) ==> (|| ?c ?y) +(|| ?c ?y) ==> (select ?c 1 ?y) +(select ?c 0 ?y) ==> (&& (! ?c) ?y) +(&& (! ?c) ?y) ==> (select ?c 0 ?y) +(select ?c ?x 1) ==> (|| (! ?c) ?x) +(|| (! ?c) ?x) ==> (select ?c ?x 1) +(select ?c ?x 0) ==> (&& ?c ?x) +(&& ?c ?x) ==> (select ?c ?x 0) +(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b) +(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b) +(select ?c ?a (select ?d ?b ?a)) ==> (select (|| ?c ?d) ?a ?b) +(select (|| ?c ?d) ?a ?b) ==> (select ?c ?a (select ?d ?b ?a)) +(select ?c (select ?d ?a ?b) (select ?d ?c ?d)) ==> (select ?d (select ?c ?a ?c) (select ?c ?b ?d)) +(select ?d (select ?c ?a ?c) (select ?c ?b ?d)) ==> (select ?c (select ?d ?a ?b) (select ?d ?c ?d)) +(select ?c (select ?c ?a ?b) ?b) ==> (select ?c ?a ?b) +(select ?c ?a ?b) ==> (select ?c (select ?c ?a ?b) ?b) +(select ?c ?a (select ?c ?b ?a)) ==> (select ?c ?a ?b) +(select ?c ?a ?b) ==> (select ?c ?a (select ?c ?b ?a)) +(select ?c ?a ?b) ==> (select (! ?c) ?b ?a) +(select (! ?c) ?b ?a) ==> (select ?c ?a ?b) +(select ?c 1 ?x) ==> (|| ?c ?x) +(|| ?c ?x) ==> (select ?c 1 ?x) +(select ?c 0 ?x) ==> (&& (! ?c) ?x) +(&& (! ?c) ?x) ==> (select ?c 0 ?x) +(select 1 ?x 1) ==> 1 +(select 0 ?x 0) ==> 0 +(< (+ ?x 1) ?x) ==> 0 +(<= (+ ?x 1) ?x) ==> 0 +(&& ?x (&& ?x ?y)) ==> (&& ?x ?y) +(&& ?x ?y) ==> (&& ?x (&& ?x ?y)) +(&& (&& ?x ?y) ?x) ==> (&& ?x ?y) +(&& ?x ?y) ==> (&& (&& ?x ?y) ?x) +(|| ?x (|| ?x ?y)) ==> (|| ?x ?y) +(|| ?x ?y) ==> (|| ?x (|| ?x ?y)) +(|| (|| ?x ?y) ?x) ==> (|| ?x ?y) +(|| ?x ?y) ==> (|| (|| ?x ?y) ?x) +(min ?x 0) ==> (select (< 0 ?x) ?x 0) +(select (< 0 ?x) ?x 0) ==> (min ?x 0) +(min (- ?x) 0) ==> (- (max 0 ?x)) +(- (max 0 ?x)) ==> (min (- ?x) 0) +(max (- ?x) 0) ==> (- (min 0 ?x)) +(- (min 0 ?x)) ==> (max (- ?x) 0) +(select ?c ?x ?y) ==> (select ?c ?x ?y) +(min ?x (- ?x)) ==> (min (- ?x) ?x) +(min (- ?x) ?x) ==> (min ?x (- ?x)) +(max ?x (- ?x)) ==> (max (- ?x) ?x) +(max (- ?x) ?x) ==> (max ?x (- ?x)) +(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0 +(select ?c (+ ?a ?b) (+ ?a ?c)) ==> (+ ?a (select ?c ?b ?c)) +(+ ?a (select ?c ?b ?c)) ==> (select ?c (+ ?a ?b) (+ ?a ?c)) +(select ?c ?a (+ ?b (- ?c))) ==> (+ (select ?c ?a ?b) (- (select ?c 0 1))) +(+ (select ?c ?a ?b) (- (select ?c 0 1))) ==> (select ?c ?a (+ ?b (- ?c))) +(select ?c ?a (- ?b ?c)) ==> (- (select ?c ?a ?b) (select ?c 0 1)) +(- (select ?c ?a ?b) (select ?c 0 1)) ==> (select ?c ?a (- ?b ?c)) +(select ?c (&& ?a ?b) (|| ?a ?b)) ==> (select ?c ?a ?b) +(select ?c ?a ?b) ==> (select ?c (&& ?a ?b) (|| ?a ?b)) +(|| (&& ?x ?y) (&& (! ?x) ?z)) ==> (select ?x ?y ?z) +(select ?x ?y ?z) ==> (|| (&& ?x ?y) (&& (! ?x) ?z)) +(|| (&& ?x ?z) (&& (! ?x) ?y)) ==> (select ?x ?z ?y) +(select ?x ?z ?y) ==> (|| (&& ?x ?z) (&& (! ?x) ?y)) +(|| (&& ?x ?z) ?y) ==> (select ?x ?z ?y) +(select ?x ?z ?y) ==> (|| (&& ?x ?z) ?y) +(|| (&& ?x ?y) ?z) ==> (select ?x ?y ?z) +(select ?x ?y ?z) ==> (|| (&& ?x ?y) ?z) +(&& (|| ?x ?y) (|| (! ?x) ?z)) ==> (select ?x ?y ?z) +(select ?x ?y ?z) ==> (&& (|| ?x ?y) (|| (! ?x) ?z)) +(&& (|| ?x ?z) (|| (! ?x) ?y)) ==> (select ?x ?z ?y) +(select ?x ?z ?y) ==> (&& (|| ?x ?z) (|| (! ?x) ?y)) +(&& (|| ?x ?z) ?y) ==> (select ?x ?y ?z) +(select ?x ?y ?z) ==> (&& (|| ?x ?z) ?y) +(&& (|| ?x ?y) ?z) ==> (select ?x ?z ?y) +(select ?x ?z ?y) ==> (&& (|| ?x ?y) ?z) +(&& ?x (|| ?y ?x)) ==> ?x +(|| ?x (&& ?y ?x)) ==> ?x +(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b)) +(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b)) +(max ?x (min ?x ?y)) ==> ?x +(min ?x (max ?x ?y)) ==> ?x +(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y)) +(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y)) +(+ ?x -1) ==> (- ?x 1) +(- ?x 1) ==> (+ ?x -1) +(- ?x -1) ==> (+ ?x 1) +(+ ?x 1) ==> (- ?x -1) +(select ?c ?a ?a) ==> ?a +(== ?x (select ?c ?a ?b)) ==> (select ?c (== ?x ?a) (== ?x ?b)) +(select ?c (== ?x ?a) (== ?x ?b)) ==> (== ?x (select ?c ?a ?b)) +(== (select ?c ?a ?b) ?x) ==> (select ?c (== ?a ?x) (== ?b ?x)) +(select ?c (== ?a ?x) (== ?b ?x)) ==> (== (select ?c ?a ?b) ?x) +(!= ?x (select ?c ?a ?b)) ==> (select ?c (!= ?x ?a) (!= ?x ?b)) +(select ?c (!= ?x ?a) (!= ?x ?b)) ==> (!= ?x (select ?c ?a ?b)) +(!= (select ?c ?a ?b) ?x) ==> (select ?c (!= ?a ?x) (!= ?b ?x)) +(select ?c (!= ?a ?x) (!= ?b ?x)) ==> (!= (select ?c ?a ?b) ?x) +(== (select ?c ?a ?b) (select ?c ?a ?b)) ==> 1 +(!= (select ?c ?a ?b) (select ?c ?a ?b)) ==> 0 +(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y)) +(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y)) +(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y)) +(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y)) +(- ?x ?y) ==> (+ ?x (* -1 ?y)) +(+ ?x (* -1 ?y)) ==> (- ?x ?y) +(+ (- ?x) -1) ==> (- (- ?x) 1) +(- (- ?x) 1) ==> (+ (- ?x) -1) +(< 0 0) ==> 0 +0 ==> (< 0 0) +(<= 0 0) ==> 1 +1 ==> (<= 0 0) +(< 1 1) ==> 0 +0 ==> (< 1 1) +(<= 1 1) ==> 1 +1 ==> (<= 1 1) +(! ?x) ==> (! ?x) +(! (&& ?x 0)) ==> 1 +(! (|| ?x 0)) ==> (! ?x) +(! ?x) ==> (! (|| ?x 0)) +(+ 1 ?x) ==> (+ ?x 1) +(+ ?x 1) ==> (+ 1 ?x) +(* 2 ?x) ==> (+ ?x ?x) +(+ ?x ?x) ==> (* 2 ?x) +(* ?x 2) ==> (+ ?x ?x) +(+ ?x ?x) ==> (* ?x 2) +(+ (+ ?x ?x) ?x) ==> (* 3 ?x) +(* 3 ?x) ==> (+ (+ ?x ?x) ?x) +(+ ?x (+ ?x ?x)) ==> (* 3 ?x) +(* 3 ?x) ==> (+ ?x (+ ?x ?x)) +(|| ?x (! ?x)) ==> 1 +(&& ?x (! ?x)) ==> 0 +(|| (! ?x) ?x) ==> 1 +(&& (! ?x) ?x) ==> 0 +(- 0) ==> 0 +0 ==> (- 0) +(select ?x ?y ?y) ==> ?y +(select (! ?x) ?y ?z) ==> (select ?x ?z ?y) +(select ?x ?z ?y) ==> (select (! ?x) ?y ?z) +(select ?x ?y ?z) ==> (select (! ?x) ?z ?y) +(select (! ?x) ?z ?y) ==> (select ?x ?y ?z) +(select ?x true false) ==> ?x +?x ==> (select ?x true false) +(select ?x false true) ==> (! ?x) +(! ?x) ==> (select ?x false true) +(select ?x (select ?y ?a ?b) (select ?y ?c ?d)) ==> (select ?y (select ?x ?a ?c) (select ?x ?b ?d)) +(select ?y (select ?x ?a ?c) (select ?x ?b ?d)) ==> (select ?x (select ?y ?a ?b) (select ?y ?c ?d)) +(min ?x ?y) ==> ?x +(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w)) +(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w)) +(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w)) +(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w)) +(select ?x (select ?y ?a ?b) ?c) ==> (select ?y (select ?x ?a ?c) (select ?x ?b ?c)) +(select ?y (select ?x ?a ?c) (select ?x ?b ?c)) ==> (select ?x (select ?y ?a ?b) ?c) +(select ?x ?y (select ?z ?a ?b)) ==> (select ?z (select ?x ?y ?a) (select ?x ?y ?b)) +(select ?z (select ?x ?y ?a) (select ?x ?y ?b)) ==> (select ?x ?y (select ?z ?a ?b)) +(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w) +(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w) +(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b)) +(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b)) +(select (min ?x ?y) ?z ?w) ==> (min (select ?x ?z ?w) (select ?y ?z ?w)) +(min (select ?x ?z ?w) (select ?y ?z ?w)) ==> (select (min ?x ?y) ?z ?w) +(select (max ?x ?y) ?z ?w) ==> (max (select ?x ?z ?w) (select ?y ?z ?w)) +(max (select ?x ?z ?w) (select ?y ?z ?w)) ==> (select (max ?x ?y) ?z ?w) +(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b)) +(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b) +(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) +(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b) +(select (- (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b)) +(select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b)) ==> (select (- (select ?x ?y ?z)) ?a ?b) +(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) +(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w) +(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) +(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w) +(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) +(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) diff --git a/jfp/cs1/halide/LLM-A5-1-A5-derive.json b/jfp/cs1/halide/LLM-A5-1-A5-derive.json new file mode 100644 index 00000000..3773cf69 --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-1-A5-derive.json @@ -0,0 +1,491 @@ +{ + "duration": { + "secs": 0, + "nanos": 105369709 + }, + "num_rules": 536, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [] +} diff --git a/jfp/cs1/halide/LLM-A5-1-Enumo-derive.json b/jfp/cs1/halide/LLM-A5-1-Enumo-derive.json new file mode 100644 index 00000000..1983cec3 --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-1-Enumo-derive.json @@ -0,0 +1,852 @@ +{ + "duration": { + "secs": 15, + "nanos": 474996625 + }, + "num_rules": 536, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [ + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)" + ] +} diff --git a/jfp/cs1/halide/LLM-A5-1-Halide-derive.json b/jfp/cs1/halide/LLM-A5-1-Halide-derive.json new file mode 100644 index 00000000..d57727d5 --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-1-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 7, + "nanos": 188429125 + }, + "num_rules": 536, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ ?x 1) ==> ?x", + "(/ 0 ?x) ==> 0", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(min ?x ?x) ==> ?x", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(== ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))" + ] +} diff --git a/jfp/cs1/halide/LLM-A5-1.rules b/jfp/cs1/halide/LLM-A5-1.rules new file mode 100644 index 00000000..9dc37f6f --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-1.rules @@ -0,0 +1,56 @@ +(/ 0 ?x) ==> 0 +(+ ?x (+ ?x ?x)) ==> (* 3 ?x) +(* 3 ?x) ==> (+ ?x (+ ?x ?x)) +(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0 +(<= ?x ?y) ==> (<= (- ?x 1) (- ?y 1)) +(<= (- ?x 1) (- ?y 1)) ==> (<= ?x ?y) +(<= ?x ?y) ==> (< ?x (+ ?y 1)) +(< ?x (+ ?y 1)) ==> (<= ?x ?y) +(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x)) +(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y) +(select (< ?y ?x) ?x ?y) ==> (max ?x ?y) +(max ?x ?y) ==> (select (< ?y ?x) ?x ?y) +(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y) +(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y) +(- (+ ?x ?y) ?y) ==> ?x +(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1)) +(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y) +(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z)) +(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z)) +(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z)) +(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z)) +(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y)) +(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y)) +(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y)) +(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y)) +(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b)) +(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b)) +(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z) +(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z)) +(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z) +(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z)) +(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z) +(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z)) +(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z) +(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z)) +(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w)) +(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w)) +(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w)) +(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w)) +(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b) +(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b) +(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w) +(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b)) +(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b) +(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y)) +(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y)) +(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y)) +(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y)) +(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) +(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w) +(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) +(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w) +(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b)) +(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b)) +(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) +(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) diff --git a/jfp/cs1/halide/LLM-A5-2-A5-derive.json b/jfp/cs1/halide/LLM-A5-2-A5-derive.json new file mode 100644 index 00000000..3b1b0fbc --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-2-A5-derive.json @@ -0,0 +1,491 @@ +{ + "duration": { + "secs": 0, + "nanos": 104332208 + }, + "num_rules": 539, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [] +} diff --git a/jfp/cs1/halide/LLM-A5-2-Enumo-derive.json b/jfp/cs1/halide/LLM-A5-2-Enumo-derive.json new file mode 100644 index 00000000..de77cc87 --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-2-Enumo-derive.json @@ -0,0 +1,852 @@ +{ + "duration": { + "secs": 16, + "nanos": 586217958 + }, + "num_rules": 539, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [ + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)" + ] +} diff --git a/jfp/cs1/halide/LLM-A5-2-Halide-derive.json b/jfp/cs1/halide/LLM-A5-2-Halide-derive.json new file mode 100644 index 00000000..8d731cd8 --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-2-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 8, + "nanos": 485886958 + }, + "num_rules": 539, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ 0 ?x) ==> 0", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(min ?x ?x) ==> ?x", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(== ?x 1) ==> ?x", + "(/ ?x ?x) ==> 1", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))" + ] +} diff --git a/jfp/cs1/halide/LLM-A5-2-candidates.rules b/jfp/cs1/halide/LLM-A5-2-candidates.rules new file mode 100644 index 00000000..d2da0c45 --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-2-candidates.rules @@ -0,0 +1,189 @@ +(+ ?a 0) ==> ?a +?a ==> (+ ?a 0) +(* 1 ?a) ==> ?a +?a ==> (* 1 ?a) +(- ?a (- 0 ?b)) ==> (+ ?a ?b) +(+ ?a ?b) ==> (- ?a (- 0 ?b)) +(- ?a (- ?b)) ==> (+ ?a ?b) +(+ ?a ?b) ==> (- ?a (- ?b)) +(select 1 ?a ?b) ==> ?a +(select 0 ?a ?b) ==> ?b +(max ?a (|| ?b ?a)) ==> (|| ?a ?a) +(&& ?a (min ?b ?a)) ==> (&& ?a ?a) +(* ?a (&& ?a ?b)) ==> (* ?a ?a) +(+ ?a (min ?a ?b)) ==> (+ ?a ?a) +(min ?a (&& ?b ?a)) ==> (&& ?a ?a) +(max ?a (&& ?b ?a)) ==> (max ?a ?a) +(== ?a (max ?b ?a)) ==> (== ?a ?a) +(!= ?a (min ?b ?a)) ==> (!= ?a ?a) +(+ ?a (- ?a ?b)) ==> (+ ?a (- ?b)) +(+ ?a (- ?b)) ==> (+ ?a (- ?a ?b)) +(- ?a (+ ?a (- ?b))) ==> (- ?b) +(min ?a (- ?a ?b)) ==> (- ?a (max ?a ?b)) +(- ?a (max ?a ?b)) ==> (min ?a (- ?a ?b)) +(max ?a (- ?a ?b)) ==> (+ ?a (max 0 (- ?b))) +(+ ?a (max 0 (- ?b))) ==> (max ?a (- ?a ?b)) +(! ?a) ==> (<= ?a 0) +(<= ?a 0) ==> (! ?a) +(- ?a (min ?a 0)) ==> (max ?a 0) +(max ?a 0) ==> (- ?a (min ?a 0)) +(max ?a 0) ==> (min ?a (max 0 ?a)) +(min ?a (max 0 ?a)) ==> (max ?a 0) +(min (max ?b 0) ?a) ==> (min ?a (max ?b 0)) +(min ?a (max ?b 0)) ==> (min (max ?b 0) ?a) +(min ?a (max 0 ?b)) ==> (max 0 (min ?a ?b)) +(max 0 (min ?a ?b)) ==> (min ?a (max 0 ?b)) +(max ?a (min 0 ?b)) ==> (min 0 (max ?a ?b)) +(min 0 (max ?a ?b)) ==> (max ?a (min 0 ?b)) +(min ?a (max ?b 0)) ==> (max ?b (min ?a 0)) +(max ?b (min ?a 0)) ==> (min ?a (max ?b 0)) +(max 0 (min ?a ?b)) ==> (min (max ?a 0) ?b) +(min (max ?a 0) ?b) ==> (max 0 (min ?a ?b)) +(! (&& ?a ?b)) ==> (|| (! ?a) (! ?b)) +(|| (! ?a) (! ?b)) ==> (! (&& ?a ?b)) +(! (|| ?a ?b)) ==> (&& (! ?a) (! ?b)) +(&& (! ?a) (! ?b)) ==> (! (|| ?a ?b)) +(- (+ ?a ?b) ?b) ==> ?a +(- ?a 0) ==> ?a +?a ==> (- ?a 0) +(== ! ?a) ==> (&& ?a 0) +(&& ?a 0) ==> (== ! ?a) +(== ?a !1) ==> (! ?a) +(! ?a) ==> (== ?a !1) +(! 0) ==> 1 +1 ==> (! 0) +(<= (- ?a) ?b) ==> (! (< ?b ?a)) +(! (< ?b ?a)) ==> (<= (- ?a) ?b) +(<= ?b (- ?a)) ==> (< (- ?a) ?b) +(< (- ?a) ?b) ==> (<= ?b (- ?a)) +(! (!= ?a 1)) ==> (== ?a 1) +(== ?a 1) ==> (! (!= ?a 1)) +(! ?a) ==> (== 0 ?a) +(== 0 ?a) ==> (! ?a) +(/ ?x 1) ==> ?x +?x ==> (/ ?x 1) +(* 1 ?x) ==> ?x +?x ==> (* 1 ?x) +(* 0 ?x) ==> 0 +(/ ?x 0) ==> 0 +(+ ?x 0) ==> ?x +?x ==> (+ ?x 0) +(- ?x ?x) ==> 0 +(- 0 0) ==> 0 +0 ==> (- 0 0) +(/ 0 ?x) ==> 0 +(+ 0 0) ==> 0 +0 ==> (+ 0 0) +(* 1 1) ==> 1 +1 ==> (* 1 1) +(* 0 0) ==> 0 +0 ==> (* 0 0) +(/ 1 1) ==> 1 +1 ==> (/ 1 1) +(/ ?x ?x) ==> 1 +(- 0 ?x) ==> (- ?x) +(- ?x) ==> (- 0 ?x) +(+ ?x -1) ==> (- ?x 1) +(- ?x 1) ==> (+ ?x -1) +(min 0 ?x) ==> (min ?x 0) +(min ?x 0) ==> (min 0 ?x) +(max 0 ?x) ==> (max ?x 0) +(max ?x 0) ==> (max 0 ?x) +(select 1 ?x ?y) ==> ?x +(select 0 ?x ?y) ==> ?y +(* ?x 0) ==> 0 +(* ?x 1) ==> ?x +?x ==> (* ?x 1) +(/ 1 ?x) ==> 1 +(select ?c ?x ?x) ==> ?x +(! 1) ==> 0 +0 ==> (! 1) +(== ?x 0) ==> (! ?x) +(! ?x) ==> (== ?x 0) +(<= 0 0) ==> 1 +1 ==> (<= 0 0) +(< 0 0) ==> 0 +0 ==> (< 0 0) +(* 1 0) ==> 0 +0 ==> (* 1 0) +(+ 1 0) ==> 1 +1 ==> (+ 1 0) +(+ 0 1) ==> 1 +1 ==> (+ 0 1) +(- 1 1) ==> 0 +0 ==> (- 1 1) +(- 0 1) ==> -1 +-1 ==> (- 0 1) +(- 1 0) ==> 1 +1 ==> (- 1 0) +(select ?c 1 1) ==> 1 +(select ?c 0 0) ==> 0 +(min 1 0) ==> 0 +0 ==> (min 1 0) +(max 1 0) ==> 1 +1 ==> (max 1 0) +(min 0 1) ==> 0 +0 ==> (min 0 1) +(max 0 1) ==> 1 +1 ==> (max 0 1) +(select ?c 0 1) ==> ?c +?c ==> (select ?c 0 1) +(select ?c 1 0) ==> (! ?c) +(! ?c) ==> (select ?c 1 0) +(* ?a 0) ==> 0 +(* 0 ?a) ==> 0 +(+ ?a (- ?a)) ==> 0 +(- ?a ?a) ==> 0 +(<= ?a (+ ?a 1)) ==> 1 +(< ?a ?a) ==> 0 +(== ?a ?a) ==> 1 +(!= ?a ?a) ==> 0 +(&& ?a 0) ==> 0 +(&& 0 ?a) ==> 0 +(|| ?a 1) ==> 1 +(|| 1 ?a) ==> 1 +(min ?a 1) ==> (min ?a ?a) +(min ?a ?a) ==> (min ?a 1) +(max ?a 0) ==> (max ?a ?a) +(max ?a ?a) ==> (max ?a 0) +(^ ?a 0) ==> ?a +?a ==> (^ ?a 0) +(^ 0 ?a) ==> ?a +?a ==> (^ 0 ?a) +(^ ?a 1) ==> (! ?a) +(! ?a) ==> (^ ?a 1) +(^ 1 ?a) ==> (! ?a) +(! ?a) ==> (^ 1 ?a) +(== ?a 0) ==> (! ?a) +(! ?a) ==> (== ?a 0) +(== ?a 1) ==> ?a +?a ==> (== ?a 1) +(== 1 ?a) ==> ?a +?a ==> (== 1 ?a) +(!= ?a 0) ==> ?a +?a ==> (!= ?a 0) +(!= 0 ?a) ==> ?a +?a ==> (!= 0 ?a) +(!= ?a 1) ==> (! ?a) +(! ?a) ==> (!= ?a 1) +(!= 1 ?a) ==> (! ?a) +(! ?a) ==> (!= 1 ?a) +(<= ?a 0) ==> (== ?a 0) +(== ?a 0) ==> (<= ?a 0) +(<= 0 ?a) ==> 1 +(< ?a 0) ==> 0 +(< 0 ?a) ==> (!= ?a 0) +(!= ?a 0) ==> (< 0 ?a) +(* (- 1) ?a) ==> (- ?a) +(- ?a) ==> (* (- 1) ?a) +(/ ?a 1) ==> ?a +?a ==> (/ ?a 1) +(/ ?a ?a) ==> 1 +(select ?c ?x ?y) ==> (select (! ?c) ?y ?x) +(select (! ?c) ?y ?x) ==> (select ?c ?x ?y) +(select ?c (select ?d ?x ?y) (select ?d ?z ?w)) ==> (select ?d (select ?c ?x ?z) (select ?c ?y ?w)) +(select ?d (select ?c ?x ?z) (select ?c ?y ?w)) ==> (select ?c (select ?d ?x ?y) (select ?d ?z ?w)) +(select ?c (select ?d ?x ?y) ?y) ==> (select (&& ?c ?d) ?x ?y) +(select (&& ?c ?d) ?x ?y) ==> (select ?c (select ?d ?x ?y) ?y) +(select ?c ?x (select ?d ?x ?y)) ==> (select (|| ?c (! ?d)) ?x ?y) +(select (|| ?c (! ?d)) ?x ?y) ==> (select ?c ?x (select ?d ?x ?y)) diff --git a/jfp/cs1/halide/LLM-A5-2.rules b/jfp/cs1/halide/LLM-A5-2.rules new file mode 100644 index 00000000..6ef81d6d --- /dev/null +++ b/jfp/cs1/halide/LLM-A5-2.rules @@ -0,0 +1,3 @@ +(/ ?x 0) ==> 0 +(select ?c (select ?d ?x ?y) (select ?d ?z ?w)) ==> (select ?d (select ?c ?x ?z) (select ?c ?y ?w)) +(select ?d (select ?c ?x ?z) (select ?c ?y ?w)) ==> (select ?c (select ?d ?x ?y) (select ?d ?z ?w)) diff --git a/jfp/cs1/halide/LLM-Enumo-1-A5-derive.json b/jfp/cs1/halide/LLM-Enumo-1-A5-derive.json new file mode 100644 index 00000000..588f6068 --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-1-A5-derive.json @@ -0,0 +1,492 @@ +{ + "duration": { + "secs": 12, + "nanos": 635575250 + }, + "num_rules": 885, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(* ?a (|| ?b ?a)) ==> ?a", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))" + ] +} diff --git a/jfp/cs1/halide/LLM-Enumo-1-Enumo-derive.json b/jfp/cs1/halide/LLM-Enumo-1-Enumo-derive.json new file mode 100644 index 00000000..b9a520cf --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-1-Enumo-derive.json @@ -0,0 +1,851 @@ +{ + "duration": { + "secs": 0, + "nanos": 106639333 + }, + "num_rules": 885, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [] +} diff --git a/jfp/cs1/halide/LLM-Enumo-1-Halide-derive.json b/jfp/cs1/halide/LLM-Enumo-1-Halide-derive.json new file mode 100644 index 00000000..dc920a9e --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-1-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 22, + "nanos": 229981250 + }, + "num_rules": 885, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ ?x 1) ==> ?x", + "(/ 0 ?x) ==> 0", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(min ?x ?x) ==> ?x", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(== ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))" + ] +} diff --git a/jfp/cs1/halide/LLM-Enumo-1.rules b/jfp/cs1/halide/LLM-Enumo-1.rules new file mode 100644 index 00000000..e017f427 --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-1.rules @@ -0,0 +1,45 @@ +(/ 0 ?x) ==> 0 +(+ ?x (+ ?x ?x)) ==> (* 3 ?x) +(* 3 ?x) ==> (+ ?x (+ ?x ?x)) +(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0 +(<= ?x ?y) ==> (< ?x (+ ?y 1)) +(< ?x (+ ?y 1)) ==> (<= ?x ?y) +(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x)) +(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y) +(select (< ?y ?x) ?x ?y) ==> (max ?x ?y) +(max ?x ?y) ==> (select (< ?y ?x) ?x ?y) +(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y) +(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y) +(- (+ ?x ?y) ?y) ==> ?x +(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1)) +(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y) +(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b)) +(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b)) +(select ?x ?y ?z) ==> (select (! ?x) ?z ?y) +(select (! ?x) ?z ?y) ==> (select ?x ?y ?z) +(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z) +(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z)) +(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z) +(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z)) +(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b) +(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b) +(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w) +(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w) +(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z) +(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w) +(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) +(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b) +(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b)) +(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b) +(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y)) +(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y)) +(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y)) +(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y)) +(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) +(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w) +(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) +(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w) +(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b)) +(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b)) +(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) +(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) diff --git a/jfp/cs1/halide/LLM-Enumo-2-A5-derive.json b/jfp/cs1/halide/LLM-Enumo-2-A5-derive.json new file mode 100644 index 00000000..74116935 --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-2-A5-derive.json @@ -0,0 +1,492 @@ +{ + "duration": { + "secs": 19, + "nanos": 355503750 + }, + "num_rules": 888, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(* ?a (|| ?b ?a)) ==> ?a", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))" + ] +} diff --git a/jfp/cs1/halide/LLM-Enumo-2-Enumo-derive.json b/jfp/cs1/halide/LLM-Enumo-2-Enumo-derive.json new file mode 100644 index 00000000..85234e0f --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-2-Enumo-derive.json @@ -0,0 +1,851 @@ +{ + "duration": { + "secs": 0, + "nanos": 104163541 + }, + "num_rules": 888, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [] +} diff --git a/jfp/cs1/halide/LLM-Enumo-2-Halide-derive.json b/jfp/cs1/halide/LLM-Enumo-2-Halide-derive.json new file mode 100644 index 00000000..f6d165aa --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-2-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 9, + "nanos": 424844209 + }, + "num_rules": 888, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ ?x 1) ==> ?x", + "(/ 0 ?x) ==> 0", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(min ?x ?x) ==> ?x", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(== ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))" + ] +} diff --git a/jfp/cs1/halide/LLM-Enumo-2-candidates.rules b/jfp/cs1/halide/LLM-Enumo-2-candidates.rules new file mode 100644 index 00000000..71b9ae27 --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-2-candidates.rules @@ -0,0 +1,240 @@ +(min (* ?a ?a) 0) ==> (* ?a ?a) +(* ?a ?a) ==> (min (* ?a ?a) 0) +(max (- ?a) 0) ==> (- (min ?a 0)) +(- (min ?a 0)) ==> (max (- ?a) 0) +(max ?a (max ?a ?b)) ==> (max ?a ?b) +(max ?a ?b) ==> (max ?a (max ?a ?b)) +(min ?a (min ?a ?b)) ==> (min ?a ?b) +(min ?a ?b) ==> (min ?a (min ?a ?b)) +(select ?b ?a ?a) ==> ?a +(min 0 (max ?a 0)) ==> 0 +(max 0 (min ?a 0)) ==> 0 +(max (* ?a ?a) 1) ==> (max ?a 1) +(max ?a 1) ==> (max (* ?a ?a) 1) +(min (* ?a ?a) 1) ==> (min ?a 1) +(min ?a 1) ==> (min (* ?a ?a) 1) +(min (* ?a ?a) -1) ==> (min ?a -1) +(min ?a -1) ==> (min (* ?a ?a) -1) +(max (- ?b ?a) 0) ==> (- (max ?b ?a) ?a) +(- (max ?b ?a) ?a) ==> (max (- ?b ?a) 0) +(min (- ?b ?a) 0) ==> (- (min ?b ?a) ?a) +(- (min ?b ?a) ?a) ==> (min (- ?b ?a) 0) +(* (- ?b) (- ?a)) ==> (* ?a ?b) +(* ?a ?b) ==> (* (- ?b) (- ?a)) +(- 1 ?a) ==> (- 1 (* 1 ?a)) +(- 1 (* 1 ?a)) ==> (- 1 ?a) +(- (- ?a)) ==> ?a +?a ==> (- (- ?a)) +(select -1 ?b ?a) ==> (select (== -1 ?b) -1 ?a) +(select (== -1 ?b) -1 ?a) ==> (select -1 ?b ?a) +(select 0 ?b ?a) ==> (select (== 0 ?b) 0 ?a) +(select (== 0 ?b) 0 ?a) ==> (select 0 ?b ?a) +(select 1 ?b ?a) ==> (select (== 1 ?b) 1 ?a) +(select (== 1 ?b) 1 ?a) ==> (select 1 ?b ?a) +(max (max ?a ?b) ?c) ==> (max ?a (max ?b ?c)) +(max ?a (max ?b ?c)) ==> (max (max ?a ?b) ?c) +(min (min ?a ?b) ?c) ==> (min ?a (min ?b ?c)) +(min ?a (min ?b ?c)) ==> (min (min ?a ?b) ?c) +(* (* ?a ?b) ?c) ==> (* ?a (* ?b ?c)) +(* ?a (* ?b ?c)) ==> (* (* ?a ?b) ?c) +(+ (+ ?a ?b) ?c) ==> (+ ?a (+ ?b ?c)) +(+ ?a (+ ?b ?c)) ==> (+ (+ ?a ?b) ?c) +(&& (&& ?a ?b) ?c) ==> (&& ?a (&& ?b ?c)) +(&& ?a (&& ?b ?c)) ==> (&& (&& ?a ?b) ?c) +(|| (|| ?a ?b) ?c) ==> (|| ?a (|| ?b ?c)) +(|| ?a (|| ?b ?c)) ==> (|| (|| ?a ?b) ?c) +(^ (^ ?a ?b) ?c) ==> (^ ?a (^ ?b ?c)) +(^ ?a (^ ?b ?c)) ==> (^ (^ ?a ?b) ?c) +(select ?c ?b ?a) ==> (select ?c ?b ?a) +(select ?a ?a ?b) ==> (select ?a ?a ?b) +(select ?a ?b ?a) ==> (select ?a ?b ?a) +(select ?b ?a ?a) ==> (select ?b ?a ?a) +(select ?a ?b ?a) ==> (select ?a ?b (+ ?a ?a)) +(select ?a ?b (+ ?a ?a)) ==> (select ?a ?b ?a) +(select ?a (* ?a ?a) ?b) ==> (* ?a ?a) +(select ?a (+ ?a a) ?b) ==> (+ ?a ?a) +(select ?c ?b ?a) ==> (select ?c ?b (- ?a ?c)) +(select ?c ?b (- ?a ?c)) ==> (select ?c ?b ?a) +(select ?c ?b ?a) ==> (select ?c ?b (* ?a ?c)) +(select ?c ?b (* ?a ?c)) ==> (select ?c ?b ?a) +(select ?a ?b (* ?a ?a)) ==> (select ?a ?b ?a) +(select ?a ?b ?a) ==> (select ?a ?b (* ?a ?a)) +(+ ?c (select ?b ?a ?a)) ==> (select ?b (+ ?c ?a) (+ ?c ?a)) +(select ?b (+ ?c ?a) (+ ?c ?a)) ==> (+ ?c (select ?b ?a ?a)) +(- ?c (select ?b ?a ?a)) ==> (select ?b (- ?c ?a) (- ?c ?a)) +(select ?b (- ?c ?a) (- ?c ?a)) ==> (- ?c (select ?b ?a ?a)) +(* ?c (select ?b ?a ?a)) ==> (select ?b (* ?c ?a) (* ?c ?a)) +(select ?b (* ?c ?a) (* ?c ?a)) ==> (* ?c (select ?b ?a ?a)) +(+ ?d (select ?c ?b ?c)) ==> (+ ?d ?c) +(- ?d (select ?c ?b ?c)) ==> (- ?d ?c) +(* ?d (select ?c ?b ?c)) ==> (* ?d ?c) +(/ ?d (select ?c ?b ?c)) ==> (/ ?d ?c) +(+ ?a (* ?b 0)) ==> ?a +(+ 0 ?a) ==> ?a +?a ==> (+ 0 ?a) +(* ?a 0) ==> 0 +(/ 0 ?a) ==> 0 +(! (! ?a)) ==> ?a +?a ==> (! (! ?a)) +(== (!= ?a ?b) 1) ==> (!= ?b ?a) +(!= ?b ?a) ==> (== (!= ?a ?b) 1) +(== (! ?a) (- ?b)) ==> (select ?b 0 1) +(select ?a ?b ?c) ==> (select ?b ?a ?c) +(select ?b ?a ?c) ==> (select ?a ?b ?c) +(select ?a 0 1) ==> (== 0 1) +(max ?a ?b) ==> (min ?b ?a) +(min ?b ?a) ==> (max ?a ?b) +(min ?a ?b) ==> (max ?b ?a) +(max ?b ?a) ==> (min ?a ?b) +(min ?a 0) ==> (select ?a 0 ?a) +(select ?a 0 ?a) ==> (min ?a 0) +(max ?a 0) ==> (select ?a ?a 0) +(select ?a ?a 0) ==> (max ?a 0) +(min 0 ?a) ==> (select ?a 0 ?a) +(select ?a 0 ?a) ==> (min 0 ?a) +(max 0 ?a) ==> (select ?a ?a 0) +(select ?a ?a 0) ==> (max 0 ?a) +(<= ?a ?b) ==> (== ?a 0) +(<= (select ?c ?a ?b) ?a) ==> ! +(< ?c ?b) ==> (<= ?b ?c) +(<= ?b ?c) ==> (< ?c ?b) +(< ?b ?c) ==> (<= ?c ?b) +(<= ?c ?b) ==> (< ?b ?c) +(== ?c (max ?a ?b)) ==> (max (== ?c ?a) (== ?c ?b)) +(max (== ?c ?a) (== ?c ?b)) ==> (== ?c (max ?a ?b)) +(! (select (&& ?a ?b) ?c ?d)) ==> (select ?c ?d (! ?b)) +(! (< ?a ?b)) ==> (<= ?b ?a) +(<= ?b ?a) ==> (! (< ?a ?b)) +(!= (select ?a ?b ?c) (!= ?b ?c)) ==> (!= (select ?a ?b ?c) ?a) +(!= (select ?a ?b ?c) ?a) ==> (!= (select ?a ?b ?c) (!= ?b ?c)) +(== ?c ?c) ==> 1 +(== (!= ?b ?a) 0) ==> (select ?b ?a 0) +(select ?b ?a 0) ==> (== (!= ?b ?a) 0) +(/ ?x 1) ==> ?x +?x ==> (/ ?x 1) +(* ?x 0) ==> 0 +(* 0 ?x) ==> 0 +(* ?x 1) ==> ?x +?x ==> (* ?x 1) +(* 1 ?x) ==> ?x +?x ==> (* 1 ?x) +(+ 0 ?x) ==> ?x +?x ==> (+ 0 ?x) +(+ ?x 0) ==> ?x +?x ==> (+ ?x 0) +(- 0) ==> 0 +0 ==> (- 0) +(! 0) ==> 1 +1 ==> (! 0) +(! 1) ==> 0 +0 ==> (! 1) +(== 0 1) ==> 0 +0 ==> (== 0 1) +(== 1 0) ==> 0 +0 ==> (== 1 0) +(== 1 1) ==> 1 +1 ==> (== 1 1) +(== 0 0) ==> 1 +1 ==> (== 0 0) +(!= 1 0) ==> 1 +1 ==> (!= 1 0) +(!= 0 1) ==> 1 +1 ==> (!= 0 1) +(!= 0 0) ==> 0 +0 ==> (!= 0 0) +(!= 1 1) ==> 0 +0 ==> (!= 1 1) +(&& 0 0) ==> 0 +0 ==> (&& 0 0) +(&& 1 1) ==> 1 +1 ==> (&& 1 1) +(&& 0 1) ==> 0 +0 ==> (&& 0 1) +(&& 1 0) ==> 0 +0 ==> (&& 1 0) +(|| 1 0) ==> 1 +1 ==> (|| 1 0) +(|| 0 1) ==> 1 +1 ==> (|| 0 1) +(|| 1 1) ==> 1 +1 ==> (|| 1 1) +(|| 0 0) ==> 0 +0 ==> (|| 0 0) +(^ 1 1) ==> 0 +0 ==> (^ 1 1) +(^ 0 0) ==> 0 +0 ==> (^ 0 0) +(^ 1 0) ==> 1 +1 ==> (^ 1 0) +(^ 0 1) ==> 1 +1 ==> (^ 0 1) +(< ?a ?b) ==> (! (<= ?b ?a)) +(! (<= ?b ?a)) ==> (< ?a ?b) +(<= ?a ?b) ==> (|| (< ?a ?b) (== ?a ?b)) +(|| (< ?a ?b) (== ?a ?b)) ==> (<= ?a ?b) +(max ?a 0) ==> (select (< 0 ?a) ?a 0) +(select (< 0 ?a) ?a 0) ==> (max ?a 0) +(max 0 ?a) ==> (select (< 0 ?a) ?a 0) +(select (< 0 ?a) ?a 0) ==> (max 0 ?a) +(min ?a 0) ==> (select (< ?a 0) ?a 0) +(select (< ?a 0) ?a 0) ==> (min ?a 0) +(min 0 ?a) ==> (select (< 0 ?a) 0 ?a) +(select (< 0 ?a) 0 ?a) ==> (min 0 ?a) +(max ?a 1) ==> (select (< 1 ?a) ?a 1) +(select (< 1 ?a) ?a 1) ==> (max ?a 1) +(max 1 ?a) ==> (select (< 1 ?a) 1 ?a) +(select (< 1 ?a) 1 ?a) ==> (max 1 ?a) +(min ?a 1) ==> (select (< ?a 1) ?a 1) +(select (< ?a 1) ?a 1) ==> (min ?a 1) +(min 1 ?a) ==> (select (< 1 ?a) 1 ?a) +(select (< 1 ?a) 1 ?a) ==> (min 1 ?a) +(select 1 ?a 1) ==> ?a +?a ==> (select 1 ?a 1) +(select 0 ?a 0) ==> 0 +(select -1 ?a -1) ==> ?a +?a ==> (select -1 ?a -1) +(- 0 0) ==> 0 +0 ==> (- 0 0) +(! (|| ?a ?b)) ==> (&& (! ?a) (! ?b)) +(&& (! ?a) (! ?b)) ==> (! (|| ?a ?b)) +(! (^ ?a ?b)) ==> (^ ?a (! ?b)) +(^ ?a (! ?b)) ==> (! (^ ?a ?b)) +(^ ?a ?a) ==> 0 +(^ ?a 0) ==> ?a +?a ==> (^ ?a 0) +(^ ?a 1) ==> (! ?a) +(! ?a) ==> (^ ?a 1) +(^ ?a (! ?a)) ==> 1 +(+ ?a ?a) ==> (* 2 ?a) +(* 2 ?a) ==> (+ ?a ?a) +(- ?a ?a) ==> 0 +(* ?a 1) ==> ?a +?a ==> (* ?a 1) +(* ?a -1) ==> (- ?a) +(- ?a) ==> (* ?a -1) +(/ ?a 1) ==> ?a +?a ==> (/ ?a 1) +(/ ?a ?a) ==> 1 +(min ?a ?a) ==> ?a +?a ==> (min ?a ?a) +(max ?a ?a) ==> ?a +?a ==> (max ?a ?a) +(min ?a (max ?a ?b)) ==> ?a +(max ?a (min ?a ?b)) ==> ?a +(select ?c ?a ?a) ==> ?a +(select ?c 0 1) ==> (! ?c) +(! ?c) ==> (select ?c 0 1) +(select ?c 1 0) ==> ?c +?c ==> (select ?c 1 0) +(select ?c ?a ?b) ==> (select (! ?c) ?b ?a) +(select (! ?c) ?b ?a) ==> (select ?c ?a ?b) +(== ?a ?b) ==> (== ?b ?a) +(== ?b ?a) ==> (== ?a ?b) +(!= ?a ?b) ==> (!= ?b ?a) +(!= ?b ?a) ==> (!= ?a ?b) +(<= ?a ?b) ==> (! (< ?b ?a)) +(! (< ?b ?a)) ==> (<= ?a ?b) +(&& ?a (|| ?b ?c)) ==> (|| (&& ?a ?b) (&& ?a ?c)) +(|| (&& ?a ?b) (&& ?a ?c)) ==> (&& ?a (|| ?b ?c)) +(|| ?a (&& ?b ?c)) ==> (&& (|| ?a ?b) (|| ?a ?c)) +(&& (|| ?a ?b) (|| ?a ?c)) ==> (|| ?a (&& ?b ?c)) diff --git a/jfp/cs1/halide/LLM-Enumo-2.rules b/jfp/cs1/halide/LLM-Enumo-2.rules new file mode 100644 index 00000000..1c01a40c --- /dev/null +++ b/jfp/cs1/halide/LLM-Enumo-2.rules @@ -0,0 +1,3 @@ +(<= ?a ?b) ==> (|| (< ?a ?b) (== ?a ?b)) +(|| (< ?a ?b) (== ?a ?b)) ==> (<= ?a ?b) +(select ?c ?b ?a) ==> (select ?c ?b ?a) diff --git a/jfp/cs1/halide/LLM-None-1-A5-derive.json b/jfp/cs1/halide/LLM-None-1-A5-derive.json new file mode 100644 index 00000000..cbf22c1d --- /dev/null +++ b/jfp/cs1/halide/LLM-None-1-A5-derive.json @@ -0,0 +1,492 @@ +{ + "duration": { + "secs": 6, + "nanos": 289450375 + }, + "num_rules": 212, + "num_against": 480, + "can": [ + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(* ?a (|| ?b ?a)) ==> ?a", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)" + ] +} diff --git a/jfp/cs1/halide/LLM-None-1-Enumo-derive.json b/jfp/cs1/halide/LLM-None-1-Enumo-derive.json new file mode 100644 index 00000000..99cd0060 --- /dev/null +++ b/jfp/cs1/halide/LLM-None-1-Enumo-derive.json @@ -0,0 +1,852 @@ +{ + "duration": { + "secs": 14, + "nanos": 327767875 + }, + "num_rules": 212, + "num_against": 840, + "can": [ + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> 0", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)" + ] +} diff --git a/jfp/cs1/halide/LLM-None-1-Halide-derive.json b/jfp/cs1/halide/LLM-None-1-Halide-derive.json new file mode 100644 index 00000000..c672e050 --- /dev/null +++ b/jfp/cs1/halide/LLM-None-1-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 5, + "nanos": 417201709 + }, + "num_rules": 212, + "num_against": 725, + "can": [ + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(< ?x ?x) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ 0 ?x) ==> 0", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(min ?x ?x) ==> ?x", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)" + ], + "cannot": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (! ?x)) ==> ?x", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(== ?x 1) ==> ?x", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x 0) ==> ?x", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ] +} diff --git a/jfp/cs1/halide/LLM-None-1.rules b/jfp/cs1/halide/LLM-None-1.rules new file mode 100644 index 00000000..476604f8 --- /dev/null +++ b/jfp/cs1/halide/LLM-None-1.rules @@ -0,0 +1,212 @@ +(select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) ==> (select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) +(select (select ?x ?y ?z) (select ?a ?b ?c) (select ?d ?e ?f)) ==> (select ?x (select ?y (select ?a ?b ?c) (select ?d ?e ?f)) (select ?z (select ?a ?b ?c) (select ?d ?e ?f))) +(select ?y (select ?x ?z ?a) (select ?x ?w ?b)) ==> (select ?x (select ?y ?z ?w) (select ?y ?a ?b)) +(select ?x (select ?y ?z ?w) (select ?y ?a ?b)) ==> (select ?y (select ?x ?z ?a) (select ?x ?w ?b)) +(select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) ==> (select (max ?x (select ?y ?a ?b)) ?z ?w) +(select (max ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (max ?x ?a) ?z ?w) (select (max ?x ?b) ?z ?w)) +(select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) ==> (select (min ?x (select ?y ?a ?b)) ?z ?w) +(select (min ?x (select ?y ?a ?b)) ?z ?w) ==> (select ?y (select (min ?x ?a) ?z ?w) (select (min ?x ?b) ?z ?w)) +(select ?c (!= ?a ?x) (!= ?b ?y)) ==> (!= (select ?c ?a ?b) (select ?c ?x ?y)) +(!= (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (!= ?a ?x) (!= ?b ?y)) +(select ?c (== ?a ?x) (== ?b ?y)) ==> (== (select ?c ?a ?b) (select ?c ?x ?y)) +(== (select ?c ?a ?b) (select ?c ?x ?y)) ==> (select ?c (== ?a ?x) (== ?b ?y)) +(select ?x (select ?y ?a ?b) (select ?z ?a ?b)) ==> (select (select ?x ?y ?z) ?a ?b) +(select (select ?x ?y ?z) ?a ?b) ==> (select ?x (select ?y ?a ?b) (select ?z ?a ?b)) +(select ?z (select ?x ?y ?a) (select ?x ?y ?b)) ==> (select ?x ?y (select ?z ?a ?b)) +(select ?x ?y (select ?z ?a ?b)) ==> (select ?z (select ?x ?y ?a) (select ?x ?y ?b)) +(select ?y (select ?x ?a ?c) (select ?x ?b ?c)) ==> (select ?x (select ?y ?a ?b) ?c) +(select ?x (select ?y ?a ?b) ?c) ==> (select ?y (select ?x ?a ?c) (select ?x ?b ?c)) +(select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b)) ==> (select (- (select ?x ?y ?z)) ?a ?b) +(select (- (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (- ?y) ?a ?b) (select (- ?z) ?a ?b)) +(select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) ==> (select (! (select ?x ?y ?z)) ?a ?b) +(select (! (select ?x ?y ?z)) ?a ?b) ==> (select ?x (select (! ?y) ?a ?b) (select (! ?z) ?a ?b)) +(select (!= ?x ?y) ?w ?z) ==> (select (== ?x ?y) ?z ?w) +(select (== ?x ?y) ?z ?w) ==> (select (!= ?x ?y) ?w ?z) +(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w) +(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w) +(select (&& ?c ?d) ?a ?b) ==> (select ?c (select ?d ?a ?b) ?b) +(select ?c (select ?d ?a ?b) ?b) ==> (select (&& ?c ?d) ?a ?b) +(max ?y (select ?x ?z ?w)) ==> (select ?x (max ?y ?z) (max ?y ?w)) +(select ?x (max ?y ?z) (max ?y ?w)) ==> (max ?y (select ?x ?z ?w)) +(min ?y (select ?x ?z ?w)) ==> (select ?x (min ?y ?z) (min ?y ?w)) +(select ?x (min ?y ?z) (min ?y ?w)) ==> (min ?y (select ?x ?z ?w)) +(select ?c (!= ?a ?x) (!= ?b ?x)) ==> (!= (select ?c ?a ?b) ?x) +(!= (select ?c ?a ?b) ?x) ==> (select ?c (!= ?a ?x) (!= ?b ?x)) +(select ?c (!= ?x ?a) (!= ?x ?b)) ==> (!= ?x (select ?c ?a ?b)) +(!= ?x (select ?c ?a ?b)) ==> (select ?c (!= ?x ?a) (!= ?x ?b)) +(select ?c (== ?a ?x) (== ?b ?x)) ==> (== (select ?c ?a ?b) ?x) +(== (select ?c ?a ?b) ?x) ==> (select ?c (== ?a ?x) (== ?b ?x)) +(select ?c (== ?x ?a) (== ?x ?b)) ==> (== ?x (select ?c ?a ?b)) +(== ?x (select ?c ?a ?b)) ==> (select ?c (== ?x ?a) (== ?x ?b)) +(/ (select ?c ?x ?y) ?z) ==> (select ?c (/ ?x ?z) (/ ?y ?z)) +(select ?c (/ ?x ?z) (/ ?y ?z)) ==> (/ (select ?c ?x ?y) ?z) +(* (select ?c ?x ?y) ?z) ==> (select ?c (* ?x ?z) (* ?y ?z)) +(select ?c (* ?x ?z) (* ?y ?z)) ==> (* (select ?c ?x ?y) ?z) +(- (select ?c ?x ?y) ?z) ==> (select ?c (- ?x ?z) (- ?y ?z)) +(select ?c (- ?x ?z) (- ?y ?z)) ==> (- (select ?c ?x ?y) ?z) +(+ (select ?c ?x ?y) ?z) ==> (select ?c (+ ?x ?z) (+ ?y ?z)) +(select ?c (+ ?x ?z) (+ ?y ?z)) ==> (+ (select ?c ?x ?y) ?z) +(select (! ?x) ?z ?y) ==> (select ?x ?y ?z) +(select ?x ?y ?z) ==> (select (! ?x) ?z ?y) +(max (max ?x ?y) ?z) ==> (max ?x (max ?y ?z)) +(max ?x (max ?y ?z)) ==> (max (max ?x ?y) ?z) +(min (min ?x ?y) ?z) ==> (min ?x (min ?y ?z)) +(min ?x (min ?y ?z)) ==> (min (min ?x ?y) ?z) +(+ ?x (+ ?y ?z)) ==> (+ (+ ?x ?y) ?z) +(+ (+ ?x ?y) ?z) ==> (+ ?x (+ ?y ?z)) +(* ?x (* ?y ?z)) ==> (* (* ?x ?y) ?z) +(* (* ?x ?y) ?z) ==> (* ?x (* ?y ?z)) +(^ (^ ?x ?y) ?z) ==> (^ ?x (^ ?y ?z)) +(^ ?x (^ ?y ?z)) ==> (^ (^ ?x ?y) ?z) +(|| (|| ?x ?y) ?z) ==> (|| ?x (|| ?y ?z)) +(|| ?x (|| ?y ?z)) ==> (|| (|| ?x ?y) ?z) +(&& (&& ?x ?y) ?z) ==> (&& ?x (&& ?y ?z)) +(&& ?x (&& ?y ?z)) ==> (&& (&& ?x ?y) ?z) +(- (- ?x ?y) ?z) ==> (- ?x (+ ?y ?z)) +(- ?x (+ ?y ?z)) ==> (- (- ?x ?y) ?z) +(+ ?x (- ?y ?z)) ==> (- (+ ?x ?y) ?z) +(- (+ ?x ?y) ?z) ==> (+ ?x (- ?y ?z)) +(<= ?x (+ ?z ?y)) ==> (<= (- ?x ?y) ?z) +(<= (- ?x ?y) ?z) ==> (<= ?x (+ ?z ?y)) +(< ?x (+ ?z ?y)) ==> (< (- ?x ?y) ?z) +(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y)) +(<= ?x (- ?z ?y)) ==> (<= (+ ?x ?y) ?z) +(<= (+ ?x ?y) ?z) ==> (<= ?x (- ?z ?y)) +(< ?x (- ?z ?y)) ==> (< (+ ?x ?y) ?z) +(< (+ ?x ?y) ?z) ==> (< ?x (- ?z ?y)) +(== ?x (+ ?z ?y)) ==> (== (- ?x ?y) ?z) +(== (- ?x ?y) ?z) ==> (== ?x (+ ?z ?y)) +(== ?x (- ?z ?y)) ==> (== (+ ?x ?y) ?z) +(== (+ ?x ?y) ?z) ==> (== ?x (- ?z ?y)) +(select (== ?x ?y) ?z ?z) ==> ?z +(select ?c (! ?a) (! ?b)) ==> (! (select ?c ?a ?b)) +(! (select ?c ?a ?b)) ==> (select ?c (! ?a) (! ?b)) +(+ (- ?x ?y) (- ?z)) ==> (- ?x (+ ?y ?z)) +(- ?x (+ ?y ?z)) ==> (+ (- ?x ?y) (- ?z)) +(- (select ?c ?x ?y)) ==> (select ?c (- ?x) (- ?y)) +(select ?c (- ?x) (- ?y)) ==> (- (select ?c ?x ?y)) +(+ (* ?z ?x) (* ?z ?y)) ==> (* ?z (+ ?x ?y)) +(* ?z (+ ?x ?y)) ==> (+ (* ?z ?x) (* ?z ?y)) +(+ (* ?y ?x) (* ?z ?x)) ==> (* (+ ?y ?z) ?x) +(* (+ ?y ?z) ?x) ==> (+ (* ?y ?x) (* ?z ?x)) +(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z)) +(max ?x (min ?y ?z)) ==> (min (max ?x ?y) (max ?x ?z)) +(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z)) +(min ?x (max ?y ?z)) ==> (max (min ?x ?y) (min ?x ?z)) +(- (* ?x ?z) (* ?y ?z)) ==> (* (- ?x ?y) ?z) +(* (- ?x ?y) ?z) ==> (- (* ?x ?z) (* ?y ?z)) +(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (- ?y ?z)) +(* ?x (- ?y ?z)) ==> (- (* ?x ?y) (* ?x ?z)) +(- (* ?x ?z) (* ?y ?z)) ==> (* (+ ?x (- ?y)) ?z) +(* (+ ?x (- ?y)) ?z) ==> (- (* ?x ?z) (* ?y ?z)) +(- (* ?x ?y) (* ?x ?z)) ==> (* ?x (+ ?y (- ?z))) +(* ?x (+ ?y (- ?z))) ==> (- (* ?x ?y) (* ?x ?z)) +(+ ?a (select ?c ?b ?c)) ==> (select ?c (+ ?a ?b) (+ ?a ?c)) +(select ?c (+ ?a ?b) (+ ?a ?c)) ==> (+ ?a (select ?c ?b ?c)) +(select ?c (- ?x 0) ?y) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (- ?x 0) ?y) +(select ?c (* 1 ?x) ?y) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (* 1 ?x) ?y) +(select ?c ?x (+ 0 ?y)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c ?x (+ 0 ?y)) +(select ?c (/ ?x 1) (/ ?y 1)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (/ ?x 1) (/ ?y 1)) +(select ?c (* ?x 1) (* ?y 1)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (* ?x 1) (* ?y 1)) +(select ?c (+ ?x 0) (+ ?y 0)) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c (+ ?x 0) (+ ?y 0)) +(!= (select ?c ?a ?b) (select ?c ?a ?b)) ==> 0 +(== (select ?c ?a ?b) (select ?c ?a ?b)) ==> 1 +(max ?y ?x) ==> (max ?x ?y) +(max ?x ?y) ==> (max ?y ?x) +(min ?y ?x) ==> (min ?x ?y) +(min ?x ?y) ==> (min ?y ?x) +(* ?y ?x) ==> (* ?x ?y) +(* ?x ?y) ==> (* ?y ?x) +(+ ?y ?x) ==> (+ ?x ?y) +(+ ?x ?y) ==> (+ ?y ?x) +(^ ?y ?x) ==> (^ ?x ?y) +(^ ?x ?y) ==> (^ ?y ?x) +(|| ?y ?x) ==> (|| ?x ?y) +(|| ?x ?y) ==> (|| ?y ?x) +(&& ?y ?x) ==> (&& ?x ?y) +(&& ?x ?y) ==> (&& ?y ?x) +(!= ?y ?x) ==> (!= ?x ?y) +(!= ?x ?y) ==> (!= ?y ?x) +(== ?y ?x) ==> (== ?x ?y) +(== ?x ?y) ==> (== ?y ?x) +(select ?x ?y ?y) ==> ?y +(- ?y ?x) ==> (- (- ?x ?y)) +(- (- ?x ?y)) ==> (- ?y ?x) +(- ?x ?y) ==> (+ (- ?y) ?x) +(+ (- ?y) ?x) ==> (- ?x ?y) +(+ ?x ?y) ==> (- ?x (- ?y)) +(- ?x (- ?y)) ==> (+ ?x ?y) +(== ?x ?y) ==> (! (!= ?x ?y)) +(! (!= ?x ?y)) ==> (== ?x ?y) +(!= ?x ?y) ==> (! (== ?x ?y)) +(! (== ?x ?y)) ==> (!= ?x ?y) +(- (* ?x ?y)) ==> (* (- ?x) ?y) +(* (- ?x) ?y) ==> (- (* ?x ?y)) +(^ ?x (! ?y)) ==> (! (^ ?x ?y)) +(! (^ ?x ?y)) ==> (^ ?x (! ?y)) +(min ?x (max ?x ?y)) ==> ?x +(max ?x (min ?x ?y)) ==> ?x +(- (+ ?x ?y) ?y) ==> ?x +(|| ?x ?y) ==> (|| (|| ?x ?y) ?x) +(|| (|| ?x ?y) ?x) ==> (|| ?x ?y) +(&& ?x ?y) ==> (&& (&& ?x ?y) ?x) +(&& (&& ?x ?y) ?x) ==> (&& ?x ?y) +(* ?x ?y) ==> (* (- ?x) (- ?y)) +(* (- ?x) (- ?y)) ==> (* ?x ?y) +(!= (- ?x) (- ?y)) ==> (!= ?x ?y) +(!= ?x ?y) ==> (!= (- ?x) (- ?y)) +(<= ?y ?x) ==> (== (min ?x ?y) ?y) +(== (min ?x ?y) ?y) ==> (<= ?y ?x) +(&& (! ?x) (! ?y)) ==> (! (|| ?x ?y)) +(! (|| ?x ?y)) ==> (&& (! ?x) (! ?y)) +(|| (! ?x) (! ?y)) ==> (! (&& ?x ?y)) +(! (&& ?x ?y)) ==> (|| (! ?x) (! ?y)) +(select (<= ?x ?y) ?x ?y) ==> (min ?x ?y) +(min ?x ?y) ==> (select (<= ?x ?y) ?x ?y) +(max ?x ?y) ==> (select (< ?y ?x) ?x ?y) +(select (< ?y ?x) ?x ?y) ==> (max ?x ?y) +(select (< ?x ?y) ?x ?y) ==> (min ?x ?y) +(min ?x ?y) ==> (select (< ?x ?y) ?x ?y) +(&& (<= ?x ?y) (<= ?y ?x)) ==> (== ?x ?y) +(== ?x ?y) ==> (&& (<= ?x ?y) (<= ?y ?x)) +(select 0 ?x ?y) ==> ?y +(+ ?x (* -1 ?y)) ==> (- ?x ?y) +(- ?x ?y) ==> (+ ?x (* -1 ?y)) +(< ?x (+ ?y 1)) ==> (<= ?x ?y) +(<= ?x ?y) ==> (< ?x (+ ?y 1)) +(<= (+ ?x 1) ?y) ==> (< ?x ?y) +(< ?x ?y) ==> (<= (+ ?x 1) ?y) +(!= (- ?x 1) (- ?y 1)) ==> (!= ?x ?y) +(!= ?x ?y) ==> (!= (- ?x 1) (- ?y 1)) +(+ (* ?a ?x) (* (- ?a) ?x)) ==> 0 +(<= ?x ?y) ==> (select (<= ?x ?y) 1 0) +(select (<= ?x ?y) 1 0) ==> (<= ?x ?y) +(!= ?x ?y) ==> (select (!= ?x ?y) 1 0) +(select (!= ?x ?y) 1 0) ==> (!= ?x ?y) +(<= ?x ?x) ==> 1 +(< ?x ?x) ==> 0 +(^ ?x ?x) ==> 0 +(- ?x ?x) ==> 0 +(! ?x) ==> (== 0 ?x) +(== 0 ?x) ==> (! ?x) +(! ?x) ==> (^ ?x 1) +(^ ?x 1) ==> (! ?x) +(&& (! ?x) ?x) ==> 0 +(|| (! ?x) ?x) ==> 1 +(! ?x) ==> (! (|| ?x 0)) +(! (|| ?x 0)) ==> (! ?x) +(* 3 ?x) ==> (+ ?x (+ ?x ?x)) +(+ ?x (+ ?x ?x)) ==> (* 3 ?x) +(/ 0 ?x) ==> 0 +(! ?c) ==> (select ?c 0 1) +(select ?c 0 1) ==> (! ?c) +(- (min 0 ?x)) ==> (max (- ?x) 0) +(max (- ?x) 0) ==> (- (min 0 ?x)) +(- (max 0 ?x)) ==> (min (- ?x) 0) +(min (- ?x) 0) ==> (- (max 0 ?x)) diff --git a/jfp/cs1/halide/LLM-None-2-A5-derive.json b/jfp/cs1/halide/LLM-None-2-A5-derive.json new file mode 100644 index 00000000..46d9ed87 --- /dev/null +++ b/jfp/cs1/halide/LLM-None-2-A5-derive.json @@ -0,0 +1,492 @@ +{ + "duration": { + "secs": 7, + "nanos": 614851667 + }, + "num_rules": 229, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)" + ] +} diff --git a/jfp/cs1/halide/LLM-None-2-Enumo-derive.json b/jfp/cs1/halide/LLM-None-2-Enumo-derive.json new file mode 100644 index 00000000..d8313bc8 --- /dev/null +++ b/jfp/cs1/halide/LLM-None-2-Enumo-derive.json @@ -0,0 +1,852 @@ +{ + "duration": { + "secs": 15, + "nanos": 118295333 + }, + "num_rules": 229, + "num_against": 840, + "can": [ + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> 0", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)" + ] +} diff --git a/jfp/cs1/halide/LLM-None-2-Halide-derive.json b/jfp/cs1/halide/LLM-None-2-Halide-derive.json new file mode 100644 index 00000000..ab9c5830 --- /dev/null +++ b/jfp/cs1/halide/LLM-None-2-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 4, + "nanos": 141317334 + }, + "num_rules": 229, + "num_against": 725, + "can": [ + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(* 0 ?x) ==> 0", + "(* ?x 0) ==> 0", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ 0 ?x) ==> 0", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(min ?x ?x) ==> ?x", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)" + ], + "cannot": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (! ?x)) ==> ?x", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 1 ?x) ==> ?x", + "(* ?x 1) ==> ?x", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(== ?x 1) ==> ?x", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x 0) ==> ?x", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ] +} diff --git a/jfp/cs1/halide/LLM-None-2-candidates.rules b/jfp/cs1/halide/LLM-None-2-candidates.rules new file mode 100644 index 00000000..f1129273 --- /dev/null +++ b/jfp/cs1/halide/LLM-None-2-candidates.rules @@ -0,0 +1,177 @@ +(select ?c ?y ?x) ==> (select (! ?c) ?x ?y) +(select (! ?c) ?x ?y) ==> (select ?c ?y ?x) +(select ?c (* ?x -1) (* ?y -1)) ==> (* (select ?c ?x ?y) -1) +(* (select ?c ?x ?y) -1) ==> (select ?c (* ?x -1) (* ?y -1)) +(select ?c (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (select ?c ?y ?z)) +(+ ?x (select ?c ?y ?z)) ==> (select ?c (+ ?x ?y) (+ ?x ?z)) +(select ?c (- ?x ?y) (- ?x ?z)) ==> (- ?x (select ?c ?y ?z)) +(- ?x (select ?c ?y ?z)) ==> (select ?c (- ?x ?y) (- ?x ?z)) +(select ?c (* ?x ?y) (* ?x ?z)) ==> (* ?x (select ?c ?y ?z)) +(* ?x (select ?c ?y ?z)) ==> (select ?c (* ?x ?y) (* ?x ?z)) +(select ?c (/ ?x ?y) (/ ?x ?z)) ==> (/ ?x (select ?c ?y ?z)) +(/ ?x (select ?c ?y ?z)) ==> (select ?c (/ ?x ?y) (/ ?x ?z)) +(select ?c (^ ?x ?y) (^ ?x ?z)) ==> (^ ?x (select ?c ?y ?z)) +(^ ?x (select ?c ?y ?z)) ==> (select ?c (^ ?x ?y) (^ ?x ?z)) +(select ?c (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (select ?c ?y ?z)) +(|| ?x (select ?c ?y ?z)) ==> (select ?c (|| ?x ?y) (|| ?x ?z)) +(select ?c (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (select ?c ?y ?z)) +(&& ?x (select ?c ?y ?z)) ==> (select ?c (&& ?x ?y) (&& ?x ?z)) +(select ?c (== ?x ?y) (== ?x ?z)) ==> (== ?x (select ?c ?y ?z)) +(== ?x (select ?c ?y ?z)) ==> (select ?c (== ?x ?y) (== ?x ?z)) +(select ?c (!= ?x ?y) (!= ?x ?z)) ==> (!= ?x (select ?c ?y ?z)) +(!= ?x (select ?c ?y ?z)) ==> (select ?c (!= ?x ?y) (!= ?x ?z)) +(select ?c (< ?x ?y) (< ?x ?z)) ==> (< ?x (select ?c ?y ?z)) +(< ?x (select ?c ?y ?z)) ==> (select ?c (< ?x ?y) (< ?x ?z)) +(select ?c (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (select ?c ?y ?z)) +(<= ?x (select ?c ?y ?z)) ==> (select ?c (<= ?x ?y) (<= ?x ?z)) +(select ?c (min ?x ?y) (min ?x ?z)) ==> (min ?x (select ?c ?y ?z)) +(min ?x (select ?c ?y ?z)) ==> (select ?c (min ?x ?y) (min ?x ?z)) +(select ?c (max ?x ?y) (max ?x ?z)) ==> (max ?x (select ?c ?y ?z)) +(max ?x (select ?c ?y ?z)) ==> (select ?c (max ?x ?y) (max ?x ?z)) +(select ?c (! ?x) (! ?y)) ==> (! (select ?c ?x ?y)) +(! (select ?c ?x ?y)) ==> (select ?c (! ?x) (! ?y)) +(== ?x ?y) ==> (== ?y ?x) +(== ?y ?x) ==> (== ?x ?y) +(!= ?x ?y) ==> (!= ?y ?x) +(!= ?y ?x) ==> (!= ?x ?y) +(== ?x ?x) ==> 1 +(!= ?x ?x) ==> 0 +(* ?x 0) ==> 0 +(* 0 ?x) ==> 0 +(+ 0 ?x) ==> ?x +?x ==> (+ 0 ?x) +(+ ?x 0) ==> ?x +?x ==> (+ ?x 0) +(- 0 ?x) ==> (- ?x) +(- ?x) ==> (- 0 ?x) +(- ?x 0) ==> ?x +?x ==> (- ?x 0) +(* -1 ?x) ==> (- ?x) +(- ?x) ==> (* -1 ?x) +(* ?x -1) ==> (- ?x) +(- ?x) ==> (* ?x -1) +(+ ?x ?x) ==> (* 2 ?x) +(* 2 ?x) ==> (+ ?x ?x) +(* 0 0) ==> 0 +0 ==> (* 0 0) +(* 1 ?x) ==> ?x +?x ==> (* 1 ?x) +(/ ?x 1) ==> ?x +?x ==> (/ ?x 1) +(/ 1 ?x) ==> (select ?x 1 0) +(select ?x 1 0) ==> (/ 1 ?x) +(== (min ?x ?y) ?y) ==> (<= ?x ?y) +(<= ?x ?y) ==> (== (min ?x ?y) ?y) +(<= ?x ?x) ==> 1 +(^ 0 0) ==> 1 +1 ==> (^ 0 0) +(^ 1 0) ==> 1 +1 ==> (^ 1 0) +(^ ?x 0) ==> 1 +(^ 0 ?x) ==> 0 +(! ?x) ==> (== 0 ?x) +(== 0 ?x) ==> (! ?x) +(select 1 ?x ?y) ==> ?x +(select ?c ?x ?x) ==> ?x +(select ?c 1 1) ==> 1 +(select ?c 0 0) ==> 0 +(select ?c 1 0) ==> ?c +?c ==> (select ?c 1 0) +(select ?c 0 1) ==> (! ?c) +(! ?c) ==> (select ?c 0 1) +(select ?c ?x 1) ==> (|| ?c ?x) +(|| ?c ?x) ==> (select ?c ?x 1) +(select ?c 0 ?x) ==> (&& (! ?c) ?x) +(&& (! ?c) ?x) ==> (select ?c 0 ?x) +(select ?c ?x 0) ==> (&& ?c ?x) +(&& ?c ?x) ==> (select ?c ?x 0) +(select 0 1 ?x) ==> ?x +?x ==> (select 0 1 ?x) +(select 1 ?x 0) ==> ?x +?x ==> (select 1 ?x 0) +(select 0 0 ?x) ==> ?x +?x ==> (select 0 0 ?x) +(select 1 0 ?x) ==> 0 +(select 0 ?x 1) ==> 1 +(&& ?x 1) ==> ?x +?x ==> (&& ?x 1) +(&& 1 ?x) ==> ?x +?x ==> (&& 1 ?x) +(&& ?x 0) ==> 0 +(&& 0 ?x) ==> 0 +(|| ?x 0) ==> ?x +?x ==> (|| ?x 0) +(|| 0 ?x) ==> ?x +?x ==> (|| 0 ?x) +(|| ?x 1) ==> 1 +(|| 1 ?x) ==> 1 +(! 1) ==> 0 +0 ==> (! 1) +(! 0) ==> 1 +1 ==> (! 0) +(* ?x 1) ==> ?x +?x ==> (* ?x 1) +(/ 0 ?x) ==> 0 +(min ?x 0) ==> 0 +(max ?x 0) ==> ?x +?x ==> (max ?x 0) +(min 0 ?x) ==> 0 +(max 0 ?x) ==> ?x +?x ==> (max 0 ?x) +(min ?x 1) ==> (select (<= ?x 1) ?x 1) +(select (<= ?x 1) ?x 1) ==> (min ?x 1) +(max ?x 1) ==> (select (<= ?x 1) 1 ?x) +(select (<= ?x 1) 1 ?x) ==> (max ?x 1) +(min 1 ?x) ==> (select (<= ?x 1) ?x 1) +(select (<= ?x 1) ?x 1) ==> (min 1 ?x) +(max 1 ?x) ==> (select (<= ?x 1) 1 ?x) +(select (<= ?x 1) 1 ?x) ==> (max 1 ?x) +(min ?x ?x) ==> ?x +?x ==> (min ?x ?x) +(max ?x ?x) ==> ?x +?x ==> (max ?x ?x) +(select ?c ?x ?y) ==> (select (! ?c) ?y ?x) +(select (! ?c) ?y ?x) ==> (select ?c ?x ?y) +(select ?c ?x ?y) ==> (select ?c ?y ?x) +(select ?c ?y ?x) ==> (select ?c ?x ?y) +(- (- ?x)) ==> ?x +?x ==> (- (- ?x)) +(- 0) ==> 0 +0 ==> (- 0) +(^ ?x 0) ==> ?x +?x ==> (^ ?x 0) +(^ 0 ?x) ==> ?x +?x ==> (^ 0 ?x) +(^ ?x 1) ==> (! ?x) +(! ?x) ==> (^ ?x 1) +(^ 1 ?x) ==> (! ?x) +(! ?x) ==> (^ 1 ?x) +(- (* 0 ?x)) ==> 0 +(- (* ?x 0)) ==> 0 +(< ?x ?x) ==> 0 +(select ?c (^ ?a ?x) (^ ?b ?x)) ==> (^ (select ?c ?a ?b) ?x) +(^ (select ?c ?a ?b) ?x) ==> (select ?c (^ ?a ?x) (^ ?b ?x)) +(select ?c (&& ?a ?x) (&& ?b ?x)) ==> (&& (select ?c ?a ?b) ?x) +(&& (select ?c ?a ?b) ?x) ==> (select ?c (&& ?a ?x) (&& ?b ?x)) +(|| (select ?c ?a ?b) ?x) ==> (select ?c (|| ?a ?x) (|| ?b ?x)) +(select ?c (|| ?a ?x) (|| ?b ?x)) ==> (|| (select ?c ?a ?b) ?x) +(select ?c (min ?a ?x) (min ?b ?x)) ==> (min (select ?c ?a ?b) ?x) +(min (select ?c ?a ?b) ?x) ==> (select ?c (min ?a ?x) (min ?b ?x)) +(select ?c (max ?a ?x) (max ?b ?x)) ==> (max (select ?c ?a ?b) ?x) +(max (select ?c ?a ?b) ?x) ==> (select ?c (max ?a ?x) (max ?b ?x)) +(select ?c (+ ?a ?x) (+ ?b ?x)) ==> (+ (select ?c ?a ?b) ?x) +(+ (select ?c ?a ?b) ?x) ==> (select ?c (+ ?a ?x) (+ ?b ?x)) +(select ?c (- ?a ?x) (- ?b ?x)) ==> (- (select ?c ?a ?b) ?x) +(- (select ?c ?a ?b) ?x) ==> (select ?c (- ?a ?x) (- ?b ?x)) +(select ?c (* ?a ?x) (* ?b ?x)) ==> (* (select ?c ?a ?b) ?x) +(* (select ?c ?a ?b) ?x) ==> (select ?c (* ?a ?x) (* ?b ?x)) +(select ?c (/ ?a ?x) (/ ?b ?x)) ==> (/ (select ?c ?a ?b) ?x) +(/ (select ?c ?a ?b) ?x) ==> (select ?c (/ ?a ?x) (/ ?b ?x)) +(select ?c (<= ?a ?x) (<= ?b ?x)) ==> (<= (select ?c ?a ?b) ?x) +(<= (select ?c ?a ?b) ?x) ==> (select ?c (<= ?a ?x) (<= ?b ?x)) +(select ?c (< ?a ?x) (< ?b ?x)) ==> (< (select ?c ?a ?b) ?x) +(< (select ?c ?a ?b) ?x) ==> (select ?c (< ?a ?x) (< ?b ?x)) +(select ?c (== ?a ?x) (== ?b ?x)) ==> (== (select ?c ?a ?b) ?x) +(== (select ?c ?a ?b) ?x) ==> (select ?c (== ?a ?x) (== ?b ?x)) +(select ?c (!= ?a ?x) (!= ?b ?x)) ==> (!= (select ?c ?a ?b) ?x) +(!= (select ?c ?a ?b) ?x) ==> (select ?c (!= ?a ?x) (!= ?b ?x)) diff --git a/jfp/cs1/halide/LLM-None-2.rules b/jfp/cs1/halide/LLM-None-2.rules new file mode 100644 index 00000000..45ef3de0 --- /dev/null +++ b/jfp/cs1/halide/LLM-None-2.rules @@ -0,0 +1,17 @@ +(max 1 ?x) ==> (select (<= ?x 1) 1 ?x) +(select (<= ?x 1) 1 ?x) ==> (max 1 ?x) +(* 0 ?x) ==> 0 +(&& 0 ?x) ==> 0 +(|| 1 ?x) ==> 1 +(select ?c (/ ?x ?y) (/ ?x ?z)) ==> (/ ?x (select ?c ?y ?z)) +(/ ?x (select ?c ?y ?z)) ==> (select ?c (/ ?x ?y) (/ ?x ?z)) +(select ?c (< ?x ?y) (< ?x ?z)) ==> (< ?x (select ?c ?y ?z)) +(< ?x (select ?c ?y ?z)) ==> (select ?c (< ?x ?y) (< ?x ?z)) +(select ?c (^ ?a ?x) (^ ?b ?x)) ==> (^ (select ?c ?a ?b) ?x) +(^ (select ?c ?a ?b) ?x) ==> (select ?c (^ ?a ?x) (^ ?b ?x)) +(select ?c (&& ?a ?x) (&& ?b ?x)) ==> (&& (select ?c ?a ?b) ?x) +(&& (select ?c ?a ?b) ?x) ==> (select ?c (&& ?a ?x) (&& ?b ?x)) +(|| (select ?c ?a ?b) ?x) ==> (select ?c (|| ?a ?x) (|| ?b ?x)) +(select ?c (|| ?a ?x) (|| ?b ?x)) ==> (|| (select ?c ?a ?b) ?x) +(select ?c (< ?a ?x) (< ?b ?x)) ==> (< (select ?c ?a ?b) ?x) +(< (select ?c ?a ?b) ?x) ==> (select ?c (< ?a ?x) (< ?b ?x)) diff --git a/jfp/cs1/trig/Enumo-LLM-1-derive.json b/jfp/cs1/trig/Enumo-LLM-1-derive.json new file mode 100644 index 00000000..6eab14bc --- /dev/null +++ b/jfp/cs1/trig/Enumo-LLM-1-derive.json @@ -0,0 +1,48 @@ +{ + "duration": { + "secs": 1, + "nanos": 106195000 + }, + "num_rules": 77, + "num_against": 36, + "can": [ + "(cos (/ PI 2)) ==> 0", + "0 ==> (cos (/ PI 2))", + "(cos (- x (/ PI 2))) ==> (sin x)", + "(sin x) ==> (cos (- x (/ PI 2)))", + "(tan PI) ==> 0", + "0 ==> (tan PI)", + "(sin (+ ?x (* 2 PI))) ==> (sin ?x)", + "(sin ?x) ==> (sin (+ ?x (* 2 PI)))", + "(cos (+ ?x (* 2 PI))) ==> (cos ?x)", + "(cos ?x) ==> (cos (+ ?x (* 2 PI)))", + "(cos (- PI ?x)) ==> (- (cos ?x))", + "(- (cos ?x)) ==> (cos (- PI ?x))", + "(sin (- PI ?x)) ==> (sin ?x)", + "(sin ?x) ==> (sin (- PI ?x))", + "(sin (- ?x)) ==> (- (sin ?x))", + "(- (sin ?x)) ==> (sin (- ?x))", + "(cos (- ?x)) ==> (cos ?x)", + "(cos ?x) ==> (cos (- ?x))" + ], + "cannot": [ + "(sin (/ PI 2)) ==> 1", + "1 ==> (sin (/ PI 2))", + "(cos PI) ==> -1", + "-1 ==> (cos PI)", + "(sqr (sin ?x)) ==> (* (sin ?x) (sin ?x))", + "(* (sin ?x) (sin ?x)) ==> (sqr (sin ?x))", + "(sqr (cos ?x)) ==> (* (cos ?x) (cos ?x))", + "(* (cos ?x) (cos ?x)) ==> (sqr (cos ?x))", + "(sqr (tan ?x)) ==> (* (tan ?x) (tan ?x))", + "(* (tan ?x) (tan ?x)) ==> (sqr (tan ?x))", + "(tan ?x) ==> (/ (sin ?x) (cos ?x))", + "(/ (sin ?x) (cos ?x)) ==> (tan ?x)", + "(sin (sqr ?x)) ==> (sin (* ?x ?x))", + "(sin (* ?x ?x)) ==> (sin (sqr ?x))", + "(cos (sqr ?x)) ==> (cos (* ?x ?x))", + "(cos (* ?x ?x)) ==> (cos (sqr ?x))", + "(tan (sqr ?x)) ==> (tan (* ?x ?x))", + "(tan (* ?x ?x)) ==> (tan (sqr ?x))" + ] +} diff --git a/jfp/cs1/trig/Enumo-LLM-2-derive.json b/jfp/cs1/trig/Enumo-LLM-2-derive.json new file mode 100644 index 00000000..cfee62d4 --- /dev/null +++ b/jfp/cs1/trig/Enumo-LLM-2-derive.json @@ -0,0 +1,52 @@ +{ + "duration": { + "secs": 1, + "nanos": 149407834 + }, + "num_rules": 77, + "num_against": 40, + "can": [ + "(sin (- ?x (/ PI 2))) ==> (- (cos ?x))", + "(- (cos ?x)) ==> (sin (- ?x (/ PI 2)))", + "(cos (- ?x PI)) ==> (- (cos ?x))", + "(- (cos ?x)) ==> (cos (- ?x PI))", + "(cos (/ PI 2)) ==> 0", + "0 ==> (cos (/ PI 2))", + "(cos (- x (/ PI 2))) ==> (sin x)", + "(sin x) ==> (cos (- x (/ PI 2)))", + "(tan PI) ==> 0", + "0 ==> (tan PI)", + "(sin (+ ?x (* 2 PI))) ==> (sin ?x)", + "(sin ?x) ==> (sin (+ ?x (* 2 PI)))", + "(cos (+ ?x (* 2 PI))) ==> (cos ?x)", + "(cos ?x) ==> (cos (+ ?x (* 2 PI)))", + "(cos (- PI ?x)) ==> (- (cos ?x))", + "(- (cos ?x)) ==> (cos (- PI ?x))", + "(sin (- PI ?x)) ==> (sin ?x)", + "(sin ?x) ==> (sin (- PI ?x))", + "(sin (- ?x)) ==> (- (sin ?x))", + "(- (sin ?x)) ==> (sin (- ?x))", + "(cos (- ?x)) ==> (cos ?x)", + "(cos ?x) ==> (cos (- ?x))" + ], + "cannot": [ + "(sin (/ PI 2)) ==> 1", + "1 ==> (sin (/ PI 2))", + "(cos PI) ==> -1", + "-1 ==> (cos PI)", + "(sqr (sin ?x)) ==> (* (sin ?x) (sin ?x))", + "(* (sin ?x) (sin ?x)) ==> (sqr (sin ?x))", + "(sqr (cos ?x)) ==> (* (cos ?x) (cos ?x))", + "(* (cos ?x) (cos ?x)) ==> (sqr (cos ?x))", + "(sqr (tan ?x)) ==> (* (tan ?x) (tan ?x))", + "(* (tan ?x) (tan ?x)) ==> (sqr (tan ?x))", + "(tan ?x) ==> (/ (sin ?x) (cos ?x))", + "(/ (sin ?x) (cos ?x)) ==> (tan ?x)", + "(sin (sqr ?x)) ==> (sin (* ?x ?x))", + "(sin (* ?x ?x)) ==> (sin (sqr ?x))", + "(cos (sqr ?x)) ==> (cos (* ?x ?x))", + "(cos (* ?x ?x)) ==> (cos (sqr ?x))", + "(tan (sqr ?x)) ==> (tan (* ?x ?x))", + "(tan (* ?x ?x)) ==> (tan (sqr ?x))" + ] +} diff --git a/jfp/cs1/trig/LLM-1-C-Enumo-derive.json b/jfp/cs1/trig/LLM-1-C-Enumo-derive.json new file mode 100644 index 00000000..006ee7f5 --- /dev/null +++ b/jfp/cs1/trig/LLM-1-C-Enumo-derive.json @@ -0,0 +1,45 @@ +{ + "duration": { + "secs": 0, + "nanos": 147558667 + }, + "num_rules": 80, + "num_against": 33, + "can": [ + "(sin (/ PI 2)) ==> (cos 0)", + "(cos 0) ==> (sin (/ PI 2))", + "(cos (* PI 2)) ==> (cos 0)", + "(cos 0) ==> (cos (* PI 2))", + "(cos (/ PI 2)) ==> (tan PI)", + "(tan PI) ==> (cos (/ PI 2))", + "(tan (* PI 2)) ==> (tan PI)", + "(tan PI) ==> (tan (* PI 2))", + "(sin PI) ==> (sin (* PI 2))", + "(sin (* PI 2)) ==> (sin PI)", + "(sin 0) ==> (sin PI)", + "(sin PI) ==> (sin 0)", + "(tan 0) ==> (tan PI)", + "(tan PI) ==> (tan 0)", + "0 ==> (tan PI)", + "(tan PI) ==> 0", + "(sin PI) ==> (tan PI)", + "(tan PI) ==> (sin PI)", + "(- (cos ?a)) ==> (cos (- PI ?a))", + "(cos (- PI ?a)) ==> (- (cos ?a))", + "(sin ?a) ==> (sin (- PI ?a))", + "(sin (- PI ?a)) ==> (sin ?a)", + "(- (sin ?a)) ==> (sin (- ?a))", + "(sin (- ?a)) ==> (- (sin ?a))", + "(cos (- ?a)) ==> (cos ?a)", + "(cos ?a) ==> (cos (- ?a))", + "(- ?a ?a) ==> (- (- ?a ?a))", + "(- (- ?a ?a)) ==> (- ?a ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)" + ], + "cannot": [ + "(sin ?a) ==> (cos (- (/ PI 2) ?a))", + "(cos (- (/ PI 2) ?a)) ==> (sin ?a)", + "(sin (+ (/ PI 2) ?a)) ==> (cos ?a)", + "(cos ?a) ==> (sin (+ (/ PI 2) ?a))" + ] +} diff --git a/jfp/cs1/trig/LLM-1-C-Herbie-derive.json b/jfp/cs1/trig/LLM-1-C-Herbie-derive.json new file mode 100644 index 00000000..d83827e0 --- /dev/null +++ b/jfp/cs1/trig/LLM-1-C-Herbie-derive.json @@ -0,0 +1,48 @@ +{ + "duration": { + "secs": 1, + "nanos": 633127542 + }, + "num_rules": 80, + "num_against": 36, + "can": [ + "(tan ?a) ==> (/ (sin ?a) (cos ?a))", + "(/ (sin ?a) (cos ?a)) ==> (tan ?a)", + "(sin 0) ==> 0", + "(cos 0) ==> 1", + "(tan 0) ==> 0" + ], + "cannot": [ + "(* (sin ?a) (sin ?a)) ==> (- 1 (* (cos ?a) (cos ?a)))", + "(* (cos ?a) (cos ?a)) ==> (- 1 (* (sin ?a) (sin ?a)))", + "(sin (+ ?a ?b)) ==> (+ (* (sin ?a) (cos ?b)) (* (cos ?a) (sin ?b)))", + "(cos (+ ?a ?b)) ==> (- (* (cos ?a) (cos ?b)) (* (sin ?a) (sin ?b)))", + "(tan (+ ?a ?b)) ==> (/ (+ (tan ?a) (tan ?b)) (- 1 (* (tan ?a) (tan ?b))))", + "(sin (- ?a ?b)) ==> (- (* (sin ?a) (cos ?b)) (* (cos ?a) (sin ?b)))", + "(cos (- ?a ?b)) ==> (+ (* (cos ?a) (cos ?b)) (* (sin ?a) (sin ?b)))", + "(sin (* 2 ?a)) ==> (* 2 (* (sin ?a) (cos ?a)))", + "(* 2 (* (sin ?a) (cos ?a))) ==> (sin (* 2 ?a))", + "(cos (* 2 ?a)) ==> (- (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a)))", + "(- (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a))) ==> (cos (* 2 ?a))", + "(tan (* 2 ?a)) ==> (/ (* 2 (tan ?a)) (- 1 (* (tan ?a) (tan ?a))))", + "(/ (* 2 (tan ?a)) (- 1 (* (tan ?a) (tan ?a)))) ==> (tan (* 2 ?a))", + "(* (sin ?a) (sin ?a)) ==> (- 1/2 (* 1/2 (cos (* 2 ?a))))", + "(* (cos ?a) (cos ?a)) ==> (+ 1/2 (* 1/2 (cos (* 2 ?a))))", + "(- (sin ?a) (sin ?b)) ==> (* 2 (* (sin (/ (- ?a ?b) 2)) (cos (/ (+ ?a ?b) 2))))", + "(- (cos ?a) (cos ?b)) ==> (* -2 (* (sin (/ (- ?a ?b) 2)) (sin (/ (+ ?a ?b) 2))))", + "(+ (sin ?a) (sin ?b)) ==> (* 2 (* (sin (/ (+ ?a ?b) 2)) (cos (/ (- ?a ?b) 2))))", + "(+ (cos ?a) (cos ?b)) ==> (* 2 (* (cos (/ (+ ?a ?b) 2)) (cos (/ (- ?a ?b) 2))))", + "(* (cos ?a) (cos ?b)) ==> (/ (+ (cos (+ ?a ?b)) (cos (- ?a ?b))) 2)", + "(* (sin ?a) (sin ?b)) ==> (/ (- (cos (- ?a ?b)) (cos (+ ?a ?b))) 2)", + "(* (sin ?a) (cos ?b)) ==> (/ (+ (sin (- ?a ?b)) (sin (+ ?a ?b))) 2)", + "(tan (/ (+ ?a ?b) 2)) ==> (/ (+ (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b)))", + "(tan (/ (- ?a ?b) 2)) ==> (/ (- (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b)))", + "(+ (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a))) ==> 1", + "(- 1 (* (cos ?a) (cos ?a))) ==> (* (sin ?a) (sin ?a))", + "(- 1 (* (sin ?a) (sin ?a))) ==> (* (cos ?a) (cos ?a))", + "(/ (sin ?a) (+ 1 (cos ?a))) ==> (tan (/ ?a 2))", + "(/ (- 1 (cos ?a)) (sin ?a)) ==> (tan (/ ?a 2))", + "(/ (+ (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b))) ==> (tan (/ (+ ?a ?b) 2))", + "(/ (- (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b))) ==> (tan (/ (- ?a ?b) 2))" + ] +} diff --git a/jfp/cs1/trig/LLM-1.rules b/jfp/cs1/trig/LLM-1.rules new file mode 100644 index 00000000..57d99f81 --- /dev/null +++ b/jfp/cs1/trig/LLM-1.rules @@ -0,0 +1,36 @@ +(sin (/ PI 2)) ==> 1 +1 ==> (sin (/ PI 2)) +(cos (/ PI 2)) ==> 0 +0 ==> (cos (/ PI 2)) +(cos (- x (/ PI 2))) ==> (sin x) +(sin x) ==> (cos (- x (/ PI 2))) +(cos PI) ==> -1 +-1 ==> (cos PI) +(tan PI) ==> 0 +0 ==> (tan PI) +(sin (+ ?x (* 2 PI))) ==> (sin ?x) +(sin ?x) ==> (sin (+ ?x (* 2 PI))) +(cos (+ ?x (* 2 PI))) ==> (cos ?x) +(cos ?x) ==> (cos (+ ?x (* 2 PI))) +(sqr (sin ?x)) ==> (* (sin ?x) (sin ?x)) +(* (sin ?x) (sin ?x)) ==> (sqr (sin ?x)) +(sqr (cos ?x)) ==> (* (cos ?x) (cos ?x)) +(* (cos ?x) (cos ?x)) ==> (sqr (cos ?x)) +(sqr (tan ?x)) ==> (* (tan ?x) (tan ?x)) +(* (tan ?x) (tan ?x)) ==> (sqr (tan ?x)) +(tan ?x) ==> (/ (sin ?x) (cos ?x)) +(/ (sin ?x) (cos ?x)) ==> (tan ?x) +(sin (sqr ?x)) ==> (sin (* ?x ?x)) +(sin (* ?x ?x)) ==> (sin (sqr ?x)) +(cos (sqr ?x)) ==> (cos (* ?x ?x)) +(cos (* ?x ?x)) ==> (cos (sqr ?x)) +(tan (sqr ?x)) ==> (tan (* ?x ?x)) +(tan (* ?x ?x)) ==> (tan (sqr ?x)) +(cos (- PI ?x)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (- PI ?x)) +(sin (- PI ?x)) ==> (sin ?x) +(sin ?x) ==> (sin (- PI ?x)) +(sin (- ?x)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (- ?x)) +(cos (- ?x)) ==> (cos ?x) +(cos ?x) ==> (cos (- ?x)) diff --git a/jfp/cs1/trig/LLM-2-C-Enumo-derive.json b/jfp/cs1/trig/LLM-2-C-Enumo-derive.json new file mode 100644 index 00000000..46f0284f --- /dev/null +++ b/jfp/cs1/trig/LLM-2-C-Enumo-derive.json @@ -0,0 +1,44 @@ +{ + "duration": { + "secs": 0, + "nanos": 105198458 + }, + "num_rules": 84, + "num_against": 33, + "can": [ + "(sin (/ PI 2)) ==> (cos 0)", + "(cos 0) ==> (sin (/ PI 2))", + "(cos (* PI 2)) ==> (cos 0)", + "(cos 0) ==> (cos (* PI 2))", + "(cos (/ PI 2)) ==> (tan PI)", + "(tan PI) ==> (cos (/ PI 2))", + "(tan (* PI 2)) ==> (tan PI)", + "(tan PI) ==> (tan (* PI 2))", + "(sin PI) ==> (sin (* PI 2))", + "(sin (* PI 2)) ==> (sin PI)", + "(sin 0) ==> (sin PI)", + "(sin PI) ==> (sin 0)", + "(tan 0) ==> (tan PI)", + "(tan PI) ==> (tan 0)", + "0 ==> (tan PI)", + "(tan PI) ==> 0", + "(sin PI) ==> (tan PI)", + "(tan PI) ==> (sin PI)", + "(- (cos ?a)) ==> (cos (- PI ?a))", + "(cos (- PI ?a)) ==> (- (cos ?a))", + "(sin ?a) ==> (sin (- PI ?a))", + "(sin (- PI ?a)) ==> (sin ?a)", + "(- (sin ?a)) ==> (sin (- ?a))", + "(sin (- ?a)) ==> (- (sin ?a))", + "(cos (- ?a)) ==> (cos ?a)", + "(cos ?a) ==> (cos (- ?a))", + "(sin ?a) ==> (cos (- (/ PI 2) ?a))", + "(cos (- (/ PI 2) ?a)) ==> (sin ?a)", + "(sin (+ (/ PI 2) ?a)) ==> (cos ?a)", + "(cos ?a) ==> (sin (+ (/ PI 2) ?a))", + "(- ?a ?a) ==> (- (- ?a ?a))", + "(- (- ?a ?a)) ==> (- ?a ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)" + ], + "cannot": [] +} diff --git a/jfp/cs1/trig/LLM-2-C-Herbie-derive.json b/jfp/cs1/trig/LLM-2-C-Herbie-derive.json new file mode 100644 index 00000000..5e032c77 --- /dev/null +++ b/jfp/cs1/trig/LLM-2-C-Herbie-derive.json @@ -0,0 +1,48 @@ +{ + "duration": { + "secs": 2, + "nanos": 66655417 + }, + "num_rules": 84, + "num_against": 36, + "can": [ + "(tan ?a) ==> (/ (sin ?a) (cos ?a))", + "(/ (sin ?a) (cos ?a)) ==> (tan ?a)", + "(sin 0) ==> 0", + "(cos 0) ==> 1", + "(tan 0) ==> 0" + ], + "cannot": [ + "(* (sin ?a) (sin ?a)) ==> (- 1 (* (cos ?a) (cos ?a)))", + "(* (cos ?a) (cos ?a)) ==> (- 1 (* (sin ?a) (sin ?a)))", + "(sin (+ ?a ?b)) ==> (+ (* (sin ?a) (cos ?b)) (* (cos ?a) (sin ?b)))", + "(cos (+ ?a ?b)) ==> (- (* (cos ?a) (cos ?b)) (* (sin ?a) (sin ?b)))", + "(tan (+ ?a ?b)) ==> (/ (+ (tan ?a) (tan ?b)) (- 1 (* (tan ?a) (tan ?b))))", + "(sin (- ?a ?b)) ==> (- (* (sin ?a) (cos ?b)) (* (cos ?a) (sin ?b)))", + "(cos (- ?a ?b)) ==> (+ (* (cos ?a) (cos ?b)) (* (sin ?a) (sin ?b)))", + "(sin (* 2 ?a)) ==> (* 2 (* (sin ?a) (cos ?a)))", + "(* 2 (* (sin ?a) (cos ?a))) ==> (sin (* 2 ?a))", + "(cos (* 2 ?a)) ==> (- (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a)))", + "(- (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a))) ==> (cos (* 2 ?a))", + "(tan (* 2 ?a)) ==> (/ (* 2 (tan ?a)) (- 1 (* (tan ?a) (tan ?a))))", + "(/ (* 2 (tan ?a)) (- 1 (* (tan ?a) (tan ?a)))) ==> (tan (* 2 ?a))", + "(* (sin ?a) (sin ?a)) ==> (- 1/2 (* 1/2 (cos (* 2 ?a))))", + "(* (cos ?a) (cos ?a)) ==> (+ 1/2 (* 1/2 (cos (* 2 ?a))))", + "(- (sin ?a) (sin ?b)) ==> (* 2 (* (sin (/ (- ?a ?b) 2)) (cos (/ (+ ?a ?b) 2))))", + "(- (cos ?a) (cos ?b)) ==> (* -2 (* (sin (/ (- ?a ?b) 2)) (sin (/ (+ ?a ?b) 2))))", + "(+ (sin ?a) (sin ?b)) ==> (* 2 (* (sin (/ (+ ?a ?b) 2)) (cos (/ (- ?a ?b) 2))))", + "(+ (cos ?a) (cos ?b)) ==> (* 2 (* (cos (/ (+ ?a ?b) 2)) (cos (/ (- ?a ?b) 2))))", + "(* (cos ?a) (cos ?b)) ==> (/ (+ (cos (+ ?a ?b)) (cos (- ?a ?b))) 2)", + "(* (sin ?a) (sin ?b)) ==> (/ (- (cos (- ?a ?b)) (cos (+ ?a ?b))) 2)", + "(* (sin ?a) (cos ?b)) ==> (/ (+ (sin (- ?a ?b)) (sin (+ ?a ?b))) 2)", + "(tan (/ (+ ?a ?b) 2)) ==> (/ (+ (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b)))", + "(tan (/ (- ?a ?b) 2)) ==> (/ (- (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b)))", + "(+ (* (cos ?a) (cos ?a)) (* (sin ?a) (sin ?a))) ==> 1", + "(- 1 (* (cos ?a) (cos ?a))) ==> (* (sin ?a) (sin ?a))", + "(- 1 (* (sin ?a) (sin ?a))) ==> (* (cos ?a) (cos ?a))", + "(/ (sin ?a) (+ 1 (cos ?a))) ==> (tan (/ ?a 2))", + "(/ (- 1 (cos ?a)) (sin ?a)) ==> (tan (/ ?a 2))", + "(/ (+ (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b))) ==> (tan (/ (+ ?a ?b) 2))", + "(/ (- (sin ?a) (sin ?b)) (+ (cos ?a) (cos ?b))) ==> (tan (/ (- ?a ?b) 2))" + ] +} diff --git a/jfp/cs1/trig/LLM-2.rules b/jfp/cs1/trig/LLM-2.rules new file mode 100644 index 00000000..6b091a5e --- /dev/null +++ b/jfp/cs1/trig/LLM-2.rules @@ -0,0 +1,40 @@ +(sin (/ PI 2)) ==> 1 +1 ==> (sin (/ PI 2)) +(cos (/ PI 2)) ==> 0 +0 ==> (cos (/ PI 2)) +(cos (- x (/ PI 2))) ==> (sin x) +(sin x) ==> (cos (- x (/ PI 2))) +(cos PI) ==> -1 +-1 ==> (cos PI) +(tan PI) ==> 0 +0 ==> (tan PI) +(sin (+ ?x (* 2 PI))) ==> (sin ?x) +(sin ?x) ==> (sin (+ ?x (* 2 PI))) +(cos (+ ?x (* 2 PI))) ==> (cos ?x) +(cos ?x) ==> (cos (+ ?x (* 2 PI))) +(sqr (sin ?x)) ==> (* (sin ?x) (sin ?x)) +(* (sin ?x) (sin ?x)) ==> (sqr (sin ?x)) +(sqr (cos ?x)) ==> (* (cos ?x) (cos ?x)) +(* (cos ?x) (cos ?x)) ==> (sqr (cos ?x)) +(sqr (tan ?x)) ==> (* (tan ?x) (tan ?x)) +(* (tan ?x) (tan ?x)) ==> (sqr (tan ?x)) +(tan ?x) ==> (/ (sin ?x) (cos ?x)) +(/ (sin ?x) (cos ?x)) ==> (tan ?x) +(sin (sqr ?x)) ==> (sin (* ?x ?x)) +(sin (* ?x ?x)) ==> (sin (sqr ?x)) +(cos (sqr ?x)) ==> (cos (* ?x ?x)) +(cos (* ?x ?x)) ==> (cos (sqr ?x)) +(tan (sqr ?x)) ==> (tan (* ?x ?x)) +(tan (* ?x ?x)) ==> (tan (sqr ?x)) +(cos (- PI ?x)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (- PI ?x)) +(sin (- PI ?x)) ==> (sin ?x) +(sin ?x) ==> (sin (- PI ?x)) +(sin (- ?x)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (- ?x)) +(cos (- ?x)) ==> (cos ?x) +(cos ?x) ==> (cos (- ?x)) +(sin (- ?x (/ PI 2))) ==> (- (cos ?x)) +(- (cos ?x)) ==> (sin (- ?x (/ PI 2))) +(cos (- ?x PI)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (- ?x PI)) diff --git a/jfp/cs1/trig/candidates.rules b/jfp/cs1/trig/candidates.rules new file mode 100644 index 00000000..53f35e02 --- /dev/null +++ b/jfp/cs1/trig/candidates.rules @@ -0,0 +1,137 @@ +(sin 0) ==> 0 +0 ==> (sin 0) +(sin PI) ==> 0 +0 ==> (sin PI) +(sin (/ PI 2)) ==> 1 +1 ==> (sin (/ PI 2)) +(sin (- PI (/ PI 2))) ==> 1 +1 ==> (sin (- PI (/ PI 2))) +(sin (* 2 PI)) ==> 0 +0 ==> (sin (* 2 PI)) +(cos 0) ==> 1 +1 ==> (cos 0) +(cos PI) ==> -1 +-1 ==> (cos PI) +(cos (/ PI 2)) ==> 0 +0 ==> (cos (/ PI 2)) +(cos (- PI (/ PI 2))) ==> 0 +0 ==> (cos (- PI (/ PI 2))) +(cos (* 2 PI)) ==> 1 +1 ==> (cos (* 2 PI)) +(tan 0) ==> 0 +0 ==> (tan 0) +(tan PI) ==> 0 +0 ==> (tan PI) +(tan (* 2 PI)) ==> 0 +0 ==> (tan (* 2 PI)) +(tan (/ PI 4)) ==> 1 +1 ==> (tan (/ PI 4)) +(tan (- PI (/ PI 4))) ==> -1 +-1 ==> (tan (- PI (/ PI 4))) +(sqr (sin ?x)) ==> (- 1 (sqr (cos ?x))) +(- 1 (sqr (cos ?x))) ==> (sqr (sin ?x)) +(sqr (cos ?x)) ==> (- 1 (sqr (sin ?x))) +(- 1 (sqr (sin ?x))) ==> (sqr (cos ?x)) +(tan ?x) ==> (/ (sin ?x) (cos ?x)) +(/ (sin ?x) (cos ?x)) ==> (tan ?x) +(/ 1 (tan ?x)) ==> (/ (cos ?x) (sin ?x)) +(/ (cos ?x) (sin ?x)) ==> (/ 1 (tan ?x)) +(sin (- ?x)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (- ?x)) +(cos (- ?x)) ==> (cos ?x) +(cos ?x) ==> (cos (- ?x)) +(tan (- ?x)) ==> (- (tan ?x)) +(- (tan ?x)) ==> (tan (- ?x)) +(sin (+ ?x (* 2 PI))) ==> (sin ?x) +(sin ?x) ==> (sin (+ ?x (* 2 PI))) +(cos (+ ?x (* 2 PI))) ==> (cos ?x) +(cos ?x) ==> (cos (+ ?x (* 2 PI))) +(tan (+ ?x PI)) ==> (tan ?x) +(tan ?x) ==> (tan (+ ?x PI)) +(sin (- PI ?x)) ==> (sin ?x) +(sin ?x) ==> (sin (- PI ?x)) +(cos (- PI ?x)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (- PI ?x)) +(sin (+ ?x ?y)) ==> (+ (* (sin ?x) (cos ?y)) (* (cos ?x) (sin ?y))) +(+ (* (sin ?x) (cos ?y)) (* (cos ?x) (sin ?y))) ==> (sin (+ ?x ?y)) +(cos (+ ?x ?y)) ==> (- (* (cos ?x) (cos ?y)) (* (sin ?x) (sin ?y))) +(- (* (cos ?x) (cos ?y)) (* (sin ?x) (sin ?y))) ==> (cos (+ ?x ?y)) +(tan (+ ?x ?y)) ==> (/ (+ (tan ?x) (tan ?y)) (- 1 (* (tan ?x) (tan ?y)))) +(/ (+ (tan ?x) (tan ?y)) (- 1 (* (tan ?x) (tan ?y)))) ==> (tan (+ ?x ?y)) +(sin (- ?x ?y)) ==> (- (* (sin ?x) (cos ?y)) (* (cos ?x) (sin ?y))) +(- (* (sin ?x) (cos ?y)) (* (cos ?x) (sin ?y))) ==> (sin (- ?x ?y)) +(cos (- ?x ?y)) ==> (+ (* (cos ?x) (cos ?y)) (* (sin ?x) (sin ?y))) +(+ (* (cos ?x) (cos ?y)) (* (sin ?x) (sin ?y))) ==> (cos (- ?x ?y)) +(tan (- ?x ?y)) ==> (/ (- (tan ?x) (tan ?y)) (+ 1 (* (tan ?x) (tan ?y)))) +(/ (- (tan ?x) (tan ?y)) (+ 1 (* (tan ?x) (tan ?y)))) ==> (tan (- ?x ?y)) +(cos (* 2 ?x)) ==> (- (sqr (cos ?x)) (sqr (sin ?x))) +(- (sqr (cos ?x)) (sqr (sin ?x))) ==> (cos (* 2 ?x)) +(cos (* 2 ?x)) ==> (- (* 2 (sqr (cos ?x))) 1) +(- (* 2 (sqr (cos ?x))) 1) ==> (cos (* 2 ?x)) +(cos (* 2 ?x)) ==> (- 1 (* 2 (sqr (sin ?x)))) +(- 1 (* 2 (sqr (sin ?x)))) ==> (cos (* 2 ?x)) +(tan (* 2 ?x)) ==> (/ (* 2 (tan ?x)) (- 1 (sqr (tan ?x)))) +(/ (* 2 (tan ?x)) (- 1 (sqr (tan ?x)))) ==> (tan (* 2 ?x)) +(/ 1 (cos ?x)) ==> (sin (+ (/ PI 2) ?x)) +(sin (+ (/ PI 2) ?x)) ==> (/ 1 (cos ?x)) +(sin (+ x (/ PI 2))) ==> (cos x) +(cos x) ==> (sin (+ x (/ PI 2))) +(sin (- x (/ PI 2))) ==> (cos x) +(cos x) ==> (sin (- x (/ PI 2))) +(cos (+ x (/ PI 2))) ==> (- (sin x)) +(- (sin x)) ==> (cos (+ x (/ PI 2))) +(cos (- x (/ PI 2))) ==> (sin x) +(sin x) ==> (cos (- x (/ PI 2))) +(tan x) ==> (/ (sin x) (cos x)) +(/ (sin x) (cos x)) ==> (tan x) +(tan (- PI (/ PI 4))) ==> 1 +1 ==> (tan (- PI (/ PI 4))) +(tan (+ x (/ PI 2))) ==> (- (tan x)) +(- (tan x)) ==> (tan (+ x (/ PI 2))) +(tan (- x (/ PI 2))) ==> (- (tan x)) +(- (tan x)) ==> (tan (- x (/ PI 2))) +(sin (+ x y)) ==> (+ (* (sin x) (cos y)) (* (cos x) (sin y))) +(+ (* (sin x) (cos y)) (* (cos x) (sin y))) ==> (sin (+ x y)) +(sin (- x y)) ==> (+ (* (sin x) (cos y)) (* (- (cos x)) (sin y))) +(+ (* (sin x) (cos y)) (* (- (cos x)) (sin y))) ==> (sin (- x y)) +(cos (+ x y)) ==> (- (+ (* (cos x) (cos y)) (* (sin x) (sin y)))) +(- (+ (* (cos x) (cos y)) (* (sin x) (sin y)))) ==> (cos (+ x y)) +(cos (- x y)) ==> (+ (* (cos x) (cos y)) (* (- (sin x)) (sin y))) +(+ (* (cos x) (cos y)) (* (- (sin x)) (sin y))) ==> (cos (- x y)) +(tan (+ x y)) ==> (/ (+ (tan x) (tan y)) (- 1 (* (tan x) (tan y)))) +(/ (+ (tan x) (tan y)) (- 1 (* (tan x) (tan y)))) ==> (tan (+ x y)) +(tan (- x y)) ==> (/ (- (tan x) (tan y)) (+ 1 (* (tan x) (tan y)))) +(/ (- (tan x) (tan y)) (+ 1 (* (tan x) (tan y)))) ==> (tan (- x y)) +(sin (- x)) ==> (- (sin x)) +(- (sin x)) ==> (sin (- x)) +(cos (- x)) ==> (cos x) +(cos x) ==> (cos (- x)) +(tan (- x)) ==> (- (tan x)) +(- (tan x)) ==> (tan (- x)) +(sqr (sin x)) ==> (* (sin x) (sin x)) +(* (sin x) (sin x)) ==> (sqr (sin x)) +(sqr (cos x)) ==> (* (cos x) (cos x)) +(* (cos x) (cos x)) ==> (sqr (cos x)) +(sqr (tan x)) ==> (* (tan x) (tan x)) +(* (tan x) (tan x)) ==> (sqr (tan x)) +(sin (- (/ PI 2))) ==> -1 +-1 ==> (sin (- (/ PI 2))) +(cos (- (/ PI 2))) ==> 0 +0 ==> (cos (- (/ PI 2))) +(sin (sqr ?x)) ==> (sin (* ?x ?x)) +(sin (* ?x ?x)) ==> (sin (sqr ?x)) +(cos (sqr ?x)) ==> (cos (* ?x ?x)) +(cos (* ?x ?x)) ==> (cos (sqr ?x)) +(tan (sqr ?x)) ==> (tan (* ?x ?x)) +(tan (* ?x ?x)) ==> (tan (sqr ?x)) +(sqr (sin ?x)) ==> (* (sin ?x) (sin ?x)) +(* (sin ?x) (sin ?x)) ==> (sqr (sin ?x)) +(sqr (cos ?x)) ==> (* (cos ?x) (cos ?x)) +(* (cos ?x) (cos ?x)) ==> (sqr (cos ?x)) +(sqr (tan ?x)) ==> (* (tan ?x) (tan ?x)) +(* (tan ?x) (tan ?x)) ==> (sqr (tan ?x)) +(+ (sqr (sin ?x)) (sqr (cos ?x))) ==> 1 +(sin (+ ?x PI)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (+ ?x PI)) +(cos (+ ?x PI)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (+ ?x PI)) diff --git a/jfp/cs1/trig/reprompted-candidates.rules b/jfp/cs1/trig/reprompted-candidates.rules new file mode 100644 index 00000000..a5d1b740 --- /dev/null +++ b/jfp/cs1/trig/reprompted-candidates.rules @@ -0,0 +1,76 @@ +(+ (/ PI 2) (* 2 PI)) ==> (+ (/ PI 2) (* 4 (/ PI 2))) +(+ (/ PI 2) (* 4 (/ PI 2))) ==> (+ (/ PI 2) (* 2 PI)) +(sqr (sin (/ PI 2))) ==> 1 +1 ==> (sqr (sin (/ PI 2))) +(sqr (cos (/ PI 2))) ==> 0 +0 ==> (sqr (cos (/ PI 2))) +(sqr (tan PI)) ==> 0 +0 ==> (sqr (tan PI)) +(- (sin (/ PI 2))) ==> -1 +-1 ==> (- (sin (/ PI 2))) +(sin 0) ==> 0 +0 ==> (sin 0) +(cos 0) ==> 1 +1 ==> (cos 0) +(tan 0) ==> 0 +0 ==> (tan 0) +(sin PI) ==> 0 +0 ==> (sin PI) +(* -1 (cos ?x)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (* -1 (cos ?x)) +(* -1 (sin ?x)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (* -1 (sin ?x)) +(* -1 (tan ?x)) ==> (- (tan ?x)) +(- (tan ?x)) ==> (* -1 (tan ?x)) +(* 0 y) ==> 0 +0 ==> (* 0 y) +(* x 0) ==> 0 +0 ==> (* x 0) +(/ 0 x) ==> 0 +0 ==> (/ 0 x) +(/ x 1) ==> x +x ==> (/ x 1) +(/ x -1) ==> (- x) +(- x) ==> (/ x -1) +(sin (+ PI ?x)) ==> (sin ?x) +(sin ?x) ==> (sin (+ PI ?x)) +(cos (+ PI ?x)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (+ PI ?x)) +(tan (+ PI ?x)) ==> (tan ?x) +(tan ?x) ==> (tan (+ PI ?x)) +(sin (* -1 ?x)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (* -1 ?x)) +(cos (* -1 ?x)) ==> (cos ?x) +(cos ?x) ==> (cos (* -1 ?x)) +(tan (* -1 ?x)) ==> (- (tan ?x)) +(- (tan ?x)) ==> (tan (* -1 ?x)) +(sin (- ?x PI)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (- ?x PI)) +(cos (- ?x PI)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (- ?x PI)) +(cos (/ PI 2)) ==> 0 +0 ==> (cos (/ PI 2)) +(sin (- ?x (/ PI 2))) ==> (- (cos ?x)) +(- (cos ?x)) ==> (sin (- ?x (/ PI 2))) +(cos (+ ?x (* 2 PI))) ==> (cos ?x) +(cos ?x) ==> (cos (+ ?x (* 2 PI))) +(sin (+ ?x PI)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (+ ?x PI)) +(cos (+ ?x PI)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (+ ?x PI)) +(tan (+ ?x PI)) ==> (tan ?x) +(tan ?x) ==> (tan (+ ?x PI)) +(tan (- ?x PI)) ==> (- (tan ?x)) +(- (tan ?x)) ==> (tan (- ?x PI)) +(cos (* 2 PI)) ==> 1 +1 ==> (cos (* 2 PI)) +(sin (* 2 PI)) ==> 0 +0 ==> (sin (* 2 PI)) +(tan (* 2 PI)) ==> 0 +0 ==> (tan (* 2 PI)) +(sin (/ PI 6)) ==> (/ 1 2) +(/ 1 2) ==> (sin (/ PI 6)) +(tan (/ PI 4)) ==> 1 +1 ==> (tan (/ PI 4)) +(cos (/ PI 3)) ==> (/ 1 2) +(/ 1 2) ==> (cos (/ PI 3)) diff --git a/jfp/cs1/trig/reprompted-sound.rules b/jfp/cs1/trig/reprompted-sound.rules new file mode 100644 index 00000000..f2288545 --- /dev/null +++ b/jfp/cs1/trig/reprompted-sound.rules @@ -0,0 +1,56 @@ +(sqr (sin (/ PI 2))) ==> 1 +1 ==> (sqr (sin (/ PI 2))) +(sqr (cos (/ PI 2))) ==> 0 +0 ==> (sqr (cos (/ PI 2))) +(sqr (tan PI)) ==> 0 +0 ==> (sqr (tan PI)) +(- (sin (/ PI 2))) ==> -1 +-1 ==> (- (sin (/ PI 2))) +(sin 0) ==> 0 +0 ==> (sin 0) +(cos 0) ==> 1 +1 ==> (cos 0) +(tan 0) ==> 0 +0 ==> (tan 0) +(sin PI) ==> 0 +0 ==> (sin PI) +(* -1 (cos ?x)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (* -1 (cos ?x)) +(* -1 (sin ?x)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (* -1 (sin ?x)) +(* -1 (tan ?x)) ==> (- (tan ?x)) +(- (tan ?x)) ==> (* -1 (tan ?x)) +(* 0 y) ==> 0 +0 ==> (* 0 y) +(* x 0) ==> 0 +0 ==> (* x 0) +(/ x 1) ==> x +x ==> (/ x 1) +(/ x -1) ==> (- x) +(- x) ==> (/ x -1) +(cos (+ PI ?x)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (+ PI ?x)) +(sin (* -1 ?x)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (* -1 ?x)) +(cos (* -1 ?x)) ==> (cos ?x) +(cos ?x) ==> (cos (* -1 ?x)) +(sin (- ?x PI)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (- ?x PI)) +(cos (- ?x PI)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (- ?x PI)) +(cos (/ PI 2)) ==> 0 +0 ==> (cos (/ PI 2)) +(sin (- ?x (/ PI 2))) ==> (- (cos ?x)) +(- (cos ?x)) ==> (sin (- ?x (/ PI 2))) +(cos (+ ?x (* 2 PI))) ==> (cos ?x) +(cos ?x) ==> (cos (+ ?x (* 2 PI))) +(sin (+ ?x PI)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (+ ?x PI)) +(cos (+ ?x PI)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (+ ?x PI)) +(cos (* 2 PI)) ==> 1 +1 ==> (cos (* 2 PI)) +(sin (* 2 PI)) ==> 0 +0 ==> (sin (* 2 PI)) +(tan (* 2 PI)) ==> 0 +0 ==> (tan (* 2 PI)) diff --git a/jfp/cs1/trig/sound.rules b/jfp/cs1/trig/sound.rules new file mode 100644 index 00000000..898d0837 --- /dev/null +++ b/jfp/cs1/trig/sound.rules @@ -0,0 +1,74 @@ +(sin 0) ==> 0 +0 ==> (sin 0) +(sin PI) ==> 0 +0 ==> (sin PI) +(sin (/ PI 2)) ==> 1 +1 ==> (sin (/ PI 2)) +(sin (- PI (/ PI 2))) ==> 1 +1 ==> (sin (- PI (/ PI 2))) +(sin (* 2 PI)) ==> 0 +0 ==> (sin (* 2 PI)) +(cos 0) ==> 1 +1 ==> (cos 0) +(cos PI) ==> -1 +-1 ==> (cos PI) +(cos (/ PI 2)) ==> 0 +0 ==> (cos (/ PI 2)) +(cos (- PI (/ PI 2))) ==> 0 +0 ==> (cos (- PI (/ PI 2))) +(cos (* 2 PI)) ==> 1 +1 ==> (cos (* 2 PI)) +(tan 0) ==> 0 +0 ==> (tan 0) +(tan PI) ==> 0 +0 ==> (tan PI) +(tan (* 2 PI)) ==> 0 +0 ==> (tan (* 2 PI)) +(tan ?x) ==> (/ (sin ?x) (cos ?x)) +(/ (sin ?x) (cos ?x)) ==> (tan ?x) +(sin (- ?x)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (- ?x)) +(cos (- ?x)) ==> (cos ?x) +(cos ?x) ==> (cos (- ?x)) +(sin (+ ?x (* 2 PI))) ==> (sin ?x) +(sin ?x) ==> (sin (+ ?x (* 2 PI))) +(cos (+ ?x (* 2 PI))) ==> (cos ?x) +(cos ?x) ==> (cos (+ ?x (* 2 PI))) +(sin (- PI ?x)) ==> (sin ?x) +(sin ?x) ==> (sin (- PI ?x)) +(cos (- PI ?x)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (- PI ?x)) +(cos (- x (/ PI 2))) ==> (sin x) +(sin x) ==> (cos (- x (/ PI 2))) +(tan x) ==> (/ (sin x) (cos x)) +(/ (sin x) (cos x)) ==> (tan x) +(sin (- x)) ==> (- (sin x)) +(- (sin x)) ==> (sin (- x)) +(cos (- x)) ==> (cos x) +(cos x) ==> (cos (- x)) +(sqr (sin x)) ==> (* (sin x) (sin x)) +(* (sin x) (sin x)) ==> (sqr (sin x)) +(sqr (cos x)) ==> (* (cos x) (cos x)) +(* (cos x) (cos x)) ==> (sqr (cos x)) +(sqr (tan x)) ==> (* (tan x) (tan x)) +(* (tan x) (tan x)) ==> (sqr (tan x)) +(sin (- (/ PI 2))) ==> -1 +-1 ==> (sin (- (/ PI 2))) +(cos (- (/ PI 2))) ==> 0 +0 ==> (cos (- (/ PI 2))) +(sin (sqr ?x)) ==> (sin (* ?x ?x)) +(sin (* ?x ?x)) ==> (sin (sqr ?x)) +(cos (sqr ?x)) ==> (cos (* ?x ?x)) +(cos (* ?x ?x)) ==> (cos (sqr ?x)) +(tan (sqr ?x)) ==> (tan (* ?x ?x)) +(tan (* ?x ?x)) ==> (tan (sqr ?x)) +(sqr (sin ?x)) ==> (* (sin ?x) (sin ?x)) +(* (sin ?x) (sin ?x)) ==> (sqr (sin ?x)) +(sqr (cos ?x)) ==> (* (cos ?x) (cos ?x)) +(* (cos ?x) (cos ?x)) ==> (sqr (cos ?x)) +(sqr (tan ?x)) ==> (* (tan ?x) (tan ?x)) +(* (tan ?x) (tan ?x)) ==> (sqr (tan ?x)) +(sin (+ ?x PI)) ==> (- (sin ?x)) +(- (sin ?x)) ==> (sin (+ ?x PI)) +(cos (+ ?x PI)) ==> (- (cos ?x)) +(- (cos ?x)) ==> (cos (+ ?x PI)) diff --git a/jfp/cs2/halide/LLM-2-A5-derive.json b/jfp/cs2/halide/LLM-2-A5-derive.json new file mode 100644 index 00000000..adf325bc --- /dev/null +++ b/jfp/cs2/halide/LLM-2-A5-derive.json @@ -0,0 +1,983 @@ +{ + "duration": { + "secs": 0, + "nanos": 106766500 + }, + "num_rules": 17, + "num_against": 480, + "can": [], + "cannot": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ] +} +{ + "duration": { + "secs": 7, + "nanos": 469836167 + }, + "num_rules": 229, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)" + ] +} diff --git a/jfp/cs2/halide/W-LLM-2-A5-derive.json b/jfp/cs2/halide/W-LLM-2-A5-derive.json new file mode 100644 index 00000000..86f7f008 --- /dev/null +++ b/jfp/cs2/halide/W-LLM-2-A5-derive.json @@ -0,0 +1,984 @@ +{ + "duration": { + "secs": 0, + "nanos": 105944667 + }, + "num_rules": 136, + "num_against": 480, + "can": [ + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)" + ], + "cannot": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ] +} +{ + "duration": { + "secs": 13, + "nanos": 53145709 + }, + "num_rules": 348, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)" + ] +} diff --git a/jfp/cs2/halide/llm-wkld.terms b/jfp/cs2/halide/llm-wkld.terms new file mode 100644 index 00000000..d622de2e --- /dev/null +++ b/jfp/cs2/halide/llm-wkld.terms @@ -0,0 +1,1436 @@ +(! (select w x y ) ) +(select (! w ) x y ) +(^ x (- y z ) ) +(min (- y ) z ) +(|| w y ) +(+ (+ w x ) y ) +(&& (+ x y ) (- z w ) ) +(select w 0 x ) +(select (select y z w ) (* y z ) x ) +(^ x 1 ) +(< 1 w ) +(select w (< x y ) z ) +(* (select (select w x y ) z w ) y ) +(!= z 1 ) +(select x (- y ) (- z ) ) +(&& y 0 ) +(select (min x y ) (min z w ) x ) +(== (&& (! x ) w ) (! (|| x (! w ) ) ) ) +(< w (min x y ) ) +(&& x (&& y (&& z w ) ) ) +(max z (- w x ) ) +(select w (- x y ) z ) +(select y 1 1 ) +(- (select x y (- z w ) ) ) +(select (select x y z ) (- x y ) w ) +(select x (- y ) z ) +(^ (== x y ) (== y z ) ) +(min (select z w (min x y ) ) w ) +(&& (max x y ) (max z w ) ) +(- w y ) +(^ z 0 ) +(- (- x ) y ) +(select (<= x y ) (<= y z ) (<= z w ) ) +(select w (min x y ) z ) +(select (select x y z ) (+ w x ) y ) +(== x z ) +(select y z z ) +(select w 1 x ) +(! (* w (* x y ) ) ) +(|| x 1 ) +(== (select w x (+ y z ) ) w ) +(select y z (select w (select x y z ) w ) ) +(! (min x y ) ) +(+ (max x y ) z ) +(select (! w ) x (- y z ) ) +(+ 1 1 ) +(+ (* w x ) y ) +(&& (select (select w x y ) z w ) z ) +(^ (^ x y ) z ) +(&& (&& w x ) z ) +(^ 0 0 ) +(select z w (select x y z ) ) +(!= (|| x y ) (|| y x ) ) +(!= (- w ) x ) +(!= w (- x y ) ) +(! (* w x ) ) +(select x y w ) +(== (select (select z w x ) y (min z w ) ) x ) +(< y 0 ) +(- (- w ) ) +(== (max x y ) z ) +(== (max x x ) x ) +(^ 1 x ) +(! (^ w (^ x y ) ) ) +(+ y 0 ) +(- w ) +(+ (+ w y ) z ) +(== (* x y ) (* y x ) ) +(|| 0 0 ) +(^ (! x ) (! y ) ) +(- (* x y ) ) +(< (select x y z ) (select w x y ) ) +(|| x (- y z ) ) +(+ w y ) +(* (* w y ) z ) +(select w x (< y z ) ) +(select (< (! w ) x ) y z ) +(|| (! x ) y ) +(< x w ) +(* y 0 ) +(min (select (select z w x ) y (min z w ) ) x ) +(+ w (- w ) ) +(select w x (* y z ) ) +(! (+ w (+ x y ) ) ) +(min 0 w ) +(select w 1 0 ) +(|| (* x (* y z ) ) (* (* x y ) z ) ) +(select x x y ) +(== (min x y ) (min y z ) ) +(min (+ w x ) y ) +(select 1 x y ) +(|| (select (! w ) x y ) (select (! (! w ) ) x y ) ) +(! (^ (! w ) x ) ) +(select (! w ) (max x y ) z ) +(== (! (|| x y ) ) (&& (! x ) (! y ) ) ) +(|| z w ) +(<= x (* y z ) ) +(+ (+ w (+ x y ) ) z ) +(- w 0 ) +(! (max w x ) ) +(select (select x y z ) z w ) +(- 0 x ) +(select (! w ) x (<= y z ) ) +(max x 1 ) +(&& z (- w x ) ) +(select (select w x y ) (+ w x ) z ) +(+ (- y ) z ) +(min 0 0 ) +(select (+ x (+ y z ) ) (+ (+ x y ) z ) w ) +(select (<= w x ) y z ) +(< w w ) +(== (! w ) x ) +(|| (|| w x ) z ) +(select w x w ) +(select (select w x y ) 0 z ) +(select (select (min x y ) z w ) y z ) +(- (* w y ) z ) +x +(^ w (* x y ) ) +(! (max x y ) ) +(|| x w ) +(== y 0 ) +(- (* w x ) ) +(! (^ (<= x y ) (<= y z ) ) ) +(min y (- z w ) ) +(< 0 w ) +(select w (^ x y ) z ) +(select z 1 1 ) +(! (select (select (min x y ) z w ) y z ) ) +(- (+ x y ) z ) +(select (!= x y ) z w ) +(&& (min x y ) (max z w ) ) +(<= (max x y ) (max y z ) ) +(== w (- x ) ) +(<= (select (select w x y ) z w ) y ) +(min z w ) +(^ (! w ) x ) +(== (* w 0 ) 0 ) +(! (! (! x ) ) ) +(- 0 1 ) +(== (+ w x ) y ) +(== w (- x y ) ) +(select x x (! w ) ) +(* 0 x ) +(* x x ) +(<= x 0 ) +(&& w (* x y ) ) +(&& w (- x y ) ) +(- y ) +(&& x y ) +(!= (! w ) x ) +(^ (|| x y ) (|| y x ) ) +(select w 0 1 ) +(<= (* x (* y z ) ) (* (* x y ) z ) ) +(<= w (<= x y ) ) +(&& (+ x (+ y z ) ) (+ (+ x y ) z ) ) +(max w (- x y ) ) +(^ (select x y z ) w ) +(|| x z ) +(|| (min x (min y z ) ) (min (min x y ) z ) ) +(== (max (max w x ) y ) (max w (max x y ) ) ) +(!= 0 w ) +(== (* x 0 ) 0 ) +(== (+ 1 1 ) 2 ) +(- 1 x ) +(< y z ) +(== y 1 ) +(< w (- x ) ) +(^ (min x y ) (max z w ) ) +(select 0 0 0 ) +(&& (* x (* y z ) ) (* (* x y ) z ) ) +(- (+ w x ) z ) +(* (* x y ) z ) +(== (max (- w x ) y ) (min (- w y ) x ) ) +(* x (+ y z ) ) +(min w y ) +(< z (- w x ) ) +(|| x y ) +(select 0 0 w ) +(<= (min x y ) (max z w ) ) +(^ (! w ) w ) +(< x (* y z ) ) +(^ (select x y z ) x ) +(select z w (- x y ) ) +(! (&& w (&& x y ) ) ) +(* (select w x y ) z ) +(* x (* y (* z w ) ) ) +(- (^ w x ) ) +(!= 1 0 ) +(! 0 ) +(== w (min x y ) ) +(|| y 1 ) +(* (+ w x ) y ) +(< 1 x ) +(- (! w ) 0 ) +(* (min x y ) (max x y ) ) +(< z 0 ) +(== (min z 0 ) 0 ) +(select x y z ) +(- x ) +(! (|| (<= x y ) (<= y z ) ) ) +(< z w ) +(<= (min x y ) z ) +(|| x (select w x y ) ) +(- 0 w ) +(+ w 1 ) +(min (min w x ) z ) +(|| y 0 ) +(&& (! (! w ) ) (! x ) ) +(select w (! x ) y ) +0 +(== w y ) +(^ x (^ y (^ z w ) ) ) +(select 0 1 1 ) +(max w 1 ) +(max w y ) +(max w z ) +(min w (* x y ) ) +(max (select w x y ) (+ z w ) ) +(< y y ) +(select (select y z w ) x (* y z ) ) +(&& (select x y z ) x ) +(select w x z ) +(== (min 0 x ) 0 ) +(== (select w x y ) z ) +(^ x 0 ) +(!= (&& x y ) (&& y x ) ) +(|| z (- w x ) ) +(select (* x (* y z ) ) (* (* x y ) z ) w ) +(* x 1 ) +(|| (<= w x ) (<= w y ) ) +(max (select (select z w x ) y (min z w ) ) y ) +(^ (^ x y ) (^ y x ) ) +(^ (&& x (&& y z ) ) (&& (&& x y ) z ) ) +(!= (max x y ) (select z w x ) ) +(min z (- w ) ) +(== (&& (|| w x ) y ) (|| (&& w y ) (&& x y ) ) ) +(&& (select w x y ) (select (! w ) x y ) ) +(select w 0 y ) +(- (* w x ) z ) +(== (! (+ x y ) ) z ) +(select (! w ) (!= x y ) z ) +(== (min (min w x ) z ) (min (min w z ) x ) ) +(^ (min x y ) z ) +(<= w (select x y z ) ) +(select (! w ) x (&& y z ) ) +(|| (max x y ) (max z w ) ) +(<= (&& x (&& y z ) ) (&& (&& x y ) z ) ) +(* (* w x ) z ) +(select w x (max y z ) ) +(max z 1 ) +(^ (^ w x ) y ) +(! (&& (<= x y ) (<= y z ) ) ) +(< x y ) +(select 0 x y ) +(! (== (! w ) x ) ) +(max z 0 ) +(|| (min x y ) (min y z ) ) +(&& (select (! w ) x y ) (select (! (! w ) ) x y ) ) +(select (! w ) (* x y ) z ) +(< z 1 ) +(* (+ w y ) z ) +(&& (<= x y ) (<= y z ) ) +(select (! w ) x (|| y z ) ) +(select (! w ) x (== y z ) ) +(<= 0 x ) +(* z (- w x ) ) +(== 0 0 ) +(< (&& x (&& y z ) ) (&& (&& x y ) z ) ) +(select w (select w x y ) z ) +(<= (max x y ) (select z w x ) ) +(min (select x y z ) (select w x (min y z ) ) ) +(&& 1 1 ) +(|| (select x y z ) (select w x (|| y z ) ) ) +(+ y 1 ) +(!= x 1 ) +(select (! w ) (+ x y ) z ) +(< (select x y z ) x ) +(== w 0 ) +(== (- x ) y ) +(select (- (! w ) x ) y z ) +(|| (min x y ) (max x y ) ) +(== (select 0 x y ) y ) +(select w w x ) +(<= w x ) +(|| 1 w ) +(- (* w (* x y ) ) ) +(^ w (^ w x ) ) +(< (select (select w x y ) z w ) x ) +(* (select x y (- z w ) ) x ) +(<= (max x y ) z ) +(- (- w x ) y ) +(^ w y ) +(max (select (select w x y ) z w ) w ) +(select w y z ) +(!= (max x (max y z ) ) (max (max x y ) z ) ) +(- (select w x (select y z w ) ) ) +(select (- w ) x y ) +(max x (select w x y ) ) +(select (min (! w ) x ) y z ) +(max y y ) +(<= w (min x y ) ) +(== (select 1 x y ) x ) +(min (select x y (- z w ) ) y ) +(+ w (max y z ) ) +(! (select z w (min x y ) ) ) +(|| (<= x y ) (<= y z ) ) +(- (+ (min x y ) z ) ) +(&& (^ x y ) (^ y x ) ) +(! (== w x ) ) +(== (&& x (! w ) ) (! (|| (! x ) w ) ) ) +(select w x (! y ) ) +(!= x y ) +(select (! w ) (select x y z ) 0 ) +(|| 0 x ) +(select z w w ) +(< (< w (+ x y ) ) z ) +(<= (select w x y ) (+ z w ) ) +(- (+ w (+ x y ) ) z ) +(&& (select (select w x y ) z (+ w x ) ) z ) +(<= (- x ) (- y ) ) +(select (max w x ) y z ) +(- (select (select w x y ) z (+ w x ) ) ) +(select (! w ) x (!= y z ) ) +(== x 1 ) +(! y ) +(- (select w x y ) ) +(select w x (== y z ) ) +(< (max x (max y z ) ) (max (max x y ) z ) ) +(^ z w ) +(* (! x ) y ) +(select (! w ) (^ x y ) z ) +(select (! w ) x (min y z ) ) +(== (* (select 0 x y ) 0 ) 0 ) +(! (^ x y ) ) +(+ w (select x y z ) ) +(&& x (+ y z ) ) +(== w x ) +(select (! w ) (+ x z ) (+ y z ) ) +(+ w (min x y ) ) +(^ 0 1 ) +(* 1 w ) +(== (- w ) x ) +(select (+ x y ) (- z w ) x ) +(== (- x x ) 0 ) +(== (max (min x y ) z ) (min (max x z ) y ) ) +(&& w x ) +(^ y z ) +(select w (!= x y ) z ) +(- y 1 ) +(select x y y ) +(* (select z w (min x y ) ) z ) +(< (max x y ) z ) +(* (max x y ) z ) +(!= (- (* x y ) ) z ) +(!= w (!= x y ) ) +(^ w (^ x y ) ) +(select (! w ) (|| x y ) z ) +(+ x x ) +(!= (! (+ x y ) ) z ) +(- (< x y ) ) +(<= (select (select x y z ) w (- x y ) ) y ) +(- (select (select x y z ) w (- x y ) ) ) +(- (select x y z ) (select w x (- y z ) ) ) +(<= (! w ) x ) +(== (select x y z ) (select w x y ) ) +(* 1 1 ) +(min x z ) +(select w z y ) +(<= (- w ) x ) +(select x y x ) +(select (- w x ) y z ) +(+ x w ) +(* (select x y z ) w ) +(* w (select x y z ) ) +(^ (select (select y z w ) x (* y z ) ) z ) +(! (select (select w x y ) z (+ w x ) ) ) +(select (! w ) (<= x y ) z ) +(max z w ) +(== 1 0 ) +(< y (- z w ) ) +(max y 0 ) +(max y 1 ) +(select (select z w x ) (min z w ) y ) +(== (select w x y ) (select x w y ) ) +(<= (+ x (+ y z ) ) (+ (+ x y ) z ) ) +(max (min x y ) z ) +(! (< (! w ) x ) ) +(|| (select y z (* w x ) ) z ) +(select y z (* w (* x y ) ) ) +(== x y ) +(select (! w ) x x ) +(|| x 0 ) +(min z 1 ) +(max 0 1 ) +(<= 1 1 ) +(!= x 0 ) +(^ x (* y z ) ) +(+ w z ) +(- w x ) +(&& (min x (min y z ) ) (min (min x y ) z ) ) +(<= (min x y ) (min z w ) ) +(== (min (min w x ) y ) (min w (min x y ) ) ) +(- (select y z (* w x ) ) ) +(select (select (select w x y ) z w ) x y ) +(select (! w ) y x ) +(select (== w x ) y z ) +(|| w 1 ) +(* x z ) +(&& x (- y z ) ) +(!= (min x (min y z ) ) (min (min x y ) z ) ) +(* 0 0 ) +(&& (! w ) (! x ) ) +(<= (max x (max y z ) ) (max (max x y ) z ) ) +(- 1 w ) +(<= 0 1 ) +(* w (* x y ) ) +(select w x (select y z 0 ) ) +(! (^ w x ) ) +(|| w (! x ) ) +(* (select (! w ) x y ) (select (! (! w ) ) x y ) ) +(- (+ y (- z w ) ) ) +(&& (== x y ) (== z w ) ) +(select (! w ) (! w ) y ) +(== w 1 ) +(+ (select w x y ) z ) +(* 1 x ) +(! (+ x y ) ) +(!= (min x y ) (min y z ) ) +(!= 1 w ) +(min x w ) +(max (select (select x y z ) w (- x y ) ) w ) +(^ (select (select x y z ) w (- x y ) ) y ) +(== (max x y ) (max y z ) ) +(max w (min x y ) ) +(select (- x ) (- y ) z ) +(select w w w ) +(select w z z ) +(select w (&& x y ) z ) +(- (+ w x ) y ) +(select w x (^ y z ) ) +(select y 0 1 ) +(select (select x y z ) w x ) +(|| (! (! w ) ) (! x ) ) +(! (&& x y ) ) +(- (|| w x ) ) +(|| x (* y z ) ) +(<= (<= w (+ x y ) ) z ) +(min x 1 ) +(select (min x y ) (max x y ) w ) +(select (< w x ) y z ) +(min (select (select w x y ) z (+ w x ) ) y ) +(min y z ) +(&& (&& w y ) z ) +(<= (select x y z ) x ) +(|| y (- z w ) ) +(<= x z ) +(select 0 w 0 ) +(! (select (select y z w ) x (* y z ) ) ) +(select x x x ) +(< z z ) +(&& (! x ) (! y ) ) +(== z z ) +(select x (select y z w ) x ) +(+ (min x y ) z ) +(select x y 0 ) +(|| 1 1 ) +(<= z 1 ) +(<= y 0 ) +(&& w z ) +(|| (min x y ) (min z w ) ) +(<= 1 w ) +(* 0 w ) +(- (select (select y z w ) x (* y z ) ) ) +(<= (* x y ) (min z w ) ) +(select w x (!= y z ) ) +(< (- x ) (- y ) ) +(^ (max x y ) (max y z ) ) +(&& x z ) +(^ (select w x y ) (select (! w ) x y ) ) +(<= (max w x ) x ) +(|| w (|| y x ) ) +(select (! w ) (== x y ) z ) +(+ (select y z (* w x ) ) x ) +(^ w (^ y x ) ) +(== (min x (min y z ) ) (min (min x y ) z ) ) +(+ 1 0 ) +(== (min x y ) (min y x ) ) +(< (min x (min y z ) ) (min (min x y ) z ) ) +(+ x z ) +(== (== w x ) y ) +(max w (- x ) ) +(min w (+ x y ) ) +(^ w (select x y z ) ) +(+ 0 x ) +(!= w x ) +(< (max x y ) (select z w x ) ) +(- (^ x y ) ) +(< 0 0 ) +(* (select (select y z w ) x (* y z ) ) z ) +(<= (select w x y ) z ) +(^ x x ) +(- 0 ) +(select z 1 0 ) +(+ x (+ y z ) ) +(- x (select w x y ) ) +(select (! w ) x (select (! w ) y z ) ) +(select y (- z w ) x ) +(min w (min y x ) ) +(select (! w ) (- x ) y ) +(|| (&& x (&& y z ) ) (&& (&& x y ) z ) ) +(== x 0 ) +(&& (&& x (&& y z ) ) (&& (&& x y ) z ) ) +(* (select w x y ) (+ z w ) ) +(* (- z ) w ) +(== (! x ) (|| (! w ) (== w 0 ) ) ) +(|| y z ) +(min 1 w ) +(select (! w ) x (* y z ) ) +(! (<= w (<= x y ) ) ) +(< (select x y (- z w ) ) z ) +(^ (- x ) (- y ) ) +(&& z w ) +(select y 0 0 ) +(|| (! w ) x ) +(! (< w x ) ) +(select (&& (! w ) x ) y z ) +(== (select x y z ) x ) +(!= (- x ) y ) +(select y x w ) +(min x (- y z ) ) +(select x 0 y ) +(select (select (! w ) x y ) 0 z ) +(max (select x y z ) (select w x y ) ) +(select 0 w x ) +(&& (+ w x ) y ) +(select x (! w ) x ) +(- w (select x y z ) ) +(+ (select (select x y z ) w (- x y ) ) x ) +(<= (max x y ) (max z w ) ) +(- w 1 ) +(min w (- x ) ) +(== (max y z ) (max z y ) ) +(- 1 ) +(< (select (select z w x ) y (min z w ) ) z ) +(<= w 1 ) +(== w (== x y ) ) +(^ w (! w ) ) +(+ x (select w x y ) ) +(^ 1 w ) +(== x x ) +(< (select (select y z w ) x (* y z ) ) y ) +(|| (select (select w x y ) z (+ w x ) ) w ) +(select w x x ) +(select (+ w x ) y z ) +(== (+ w x ) (+ x w ) ) +(max z z ) +(select w (select x y z ) z ) +(select (- x ) y z ) +(|| (- x ) (- y ) ) +y +(* (select w x y ) (select (! w ) x y ) ) +(select y x y ) +(select (! w ) 0 1 ) +(== (max x (min w x ) ) x ) +(== (! (select 1 x y ) ) (select 0 y x ) ) +(select y z w ) +(select z w x ) +(!= (min x y ) (max z w ) ) +(* (select x y z ) (select w x y ) ) +(+ (! x ) y ) +(select (! w ) (! x ) y ) +(^ x w ) +(!= (! x ) y ) +(== (min (max x y ) z ) (min (max x z ) y ) ) +(== x (- y z ) ) +(^ w (- x y ) ) +(select (! w ) x (! w ) ) +(< w (- x y ) ) +(&& w w ) +(select w y y ) +(min (! x ) y ) +(select x 0 1 ) +(max (select z w (min x y ) ) w ) +(select (^ (! w ) x ) y z ) +(< y 1 ) +(< (|| x y ) (|| y x ) ) +(select y x z ) +(== (+ x 0 ) x ) +(+ (- w ) x ) +(select w (+ x y ) z ) +(! (|| w (|| x y ) ) ) +(! (== w (== x y ) ) ) +(max 0 x ) +(|| (|| w (+ x y ) ) z ) +(^ z (- w x ) ) +(max (select x y (- z w ) ) y ) +(< 1 0 ) +(- (- z ) w ) +(&& (select y z (* w x ) ) x ) +(select (! x ) y z ) +(! x ) +(== (select w x 0 ) x ) +(min x (* y z ) ) +(* w (/ 1 w ) ) +(&& (|| x y ) (|| y x ) ) +(== (max z 0 ) z ) +(min y 1 ) +(|| (! x ) (! y ) ) +(+ w (- x ) ) +(&& w (select x y z ) ) +(min (select y z (* w x ) ) z ) +(+ (select x y z ) (select w x y ) ) +(<= w (max x y ) ) +(select 0 0 1 ) +(== z w ) +(* (select (select x y z ) w (- x y ) ) y ) +(^ y y ) +(== 1 x ) +(select 1 1 1 ) +(< x (+ y z ) ) +(< (select x y z ) (+ w x ) ) +(|| (select x y z ) w ) +(* w (- x ) ) +(* (* w (+ x y ) ) z ) +(!= w (- x ) ) +(select (&& x y ) (&& y x ) z ) +(<= w w ) +(* (- y ) z ) +(== z 0 ) +(select w (max x y ) z ) +(! (< w (< x y ) ) ) +(- z z ) +(+ w (+ x y ) ) +(^ (min x (min y z ) ) (min (min x y ) z ) ) +(< (|| x (|| y z ) ) (|| (|| x y ) z ) ) +(&& z 1 ) +(- w (- x y ) ) +(|| w 0 ) +(select (min x y ) (max x y ) z ) +(|| w (* x y ) ) +(min (select (select w x y ) z w ) z ) +(|| w (select x y z ) ) +(min (min w y ) z ) +(min 1 1 ) +(&& (! x ) y ) +(&& (select (select z w x ) y (min z w ) ) y ) +(select (^ w x ) y z ) +(select w y x ) +(&& (select z w (min x y ) ) y ) +(* y 1 ) +(&& y z ) +(min x (- y ) ) +(min w x ) +(^ w (! x ) ) +(&& w (! x ) ) +(<= (min 2 w ) (max 1 x ) ) +(* y (- z w ) ) +(select (!= (! w ) x ) y z ) +(select w 1 1 ) +(&& (select x y (- z w ) ) w ) +(== (max (min z y ) w ) (min (max z w ) y ) ) +(+ (select w x (+ y z ) ) z ) +(|| w x ) +(- z 0 ) +(^ 0 x ) +(select (! x ) (! y ) z ) +(^ (max x y ) z ) +(<= 1 0 ) +(! (&& (! w ) (! x ) ) ) +(min (min w x ) y ) +(* z w ) +(< w 0 ) +(select 1 0 1 ) +(|| w (+ x y ) ) +(== (select (select x y z ) w (- x y ) ) z ) +(select w 0 0 ) +(^ (! x ) y ) +(== (! (! x ) ) x ) +(== (|| x w ) (|| (! x ) (! w ) ) ) +(^ (max x (max y z ) ) (max (max x y ) z ) ) +(min x (select w x y ) ) +(select (<= (! w ) x ) y z ) +(^ (max x y ) (max z w ) ) +(|| x x ) +(== (select 1 0 0 ) 0 ) +(select x (! w ) y ) +(* (select y z (* w x ) ) y ) +(select (max x y ) (max z w ) y ) +(^ (select x y z ) (+ w x ) ) +(* z 1 ) +(min x (min y (min z w ) ) ) +(select (! w ) (min x y ) z ) +(select (select w x y ) z (+ w x ) ) +(!= z 0 ) +(|| x (|| y (|| z w ) ) ) +(max (- x ) y ) +(== x (select w x y ) ) +(select (select x y z ) (select w x y ) z ) +(|| (== x y ) (== z w ) ) +(+ (* w y ) z ) +(&& (&& w (+ x y ) ) z ) +(== (select 0 x 0 ) 0 ) +(select (! w ) x (max y z ) ) +(+ (- z ) w ) +(+ w (* x y ) ) +(* w x ) +(== w (+ x y ) ) +(select 0 1 0 ) +(select (min x y ) (max z w ) x ) +(+ x (+ y (+ z w ) ) ) +(<= (select (select y z w ) x (* y z ) ) z ) +(^ x (+ y z ) ) +(|| (select x y z ) (+ w x ) ) +(select (< x y ) z w ) +(select w (* x y ) z ) +(- (select (max x y ) z w ) ) +(!= (^ x y ) (^ y x ) ) +(&& y y ) +(! (== x y ) ) +(* (select w x (+ y z ) ) w ) +(max w (+ x y ) ) +(- (- w ) x ) +(!= w (max x y ) ) +(+ (+ x y ) z ) +(== 0 1 ) +(&& (min x y ) (min z w ) ) +(&& y 1 ) +(!= (+ w x ) y ) +(+ y z ) +(|| (|| w y ) z ) +(select (min x (min y z ) ) (min (min x y ) z ) w ) +(^ (<= x y ) (<= y z ) ) +(min (max x y ) z ) +(+ (select z w (min x y ) ) y ) +(max w (* x y ) ) +(+ z z ) +(== (^ x y ) (^ y x ) ) +(+ (select (select w x y ) z (+ w x ) ) w ) +(select (select w x y ) z x ) +(select (! w ) x (^ y z ) ) +(&& (&& w x ) y ) +(max w (max y x ) ) +(== z 1 ) +(&& x (* y z ) ) +(+ w x ) +(select z 0 1 ) +(<= w (* x y ) ) +(|| (== x y ) (== y z ) ) +(&& (== x y ) (== y z ) ) +(== (max x (max y z ) ) (max (max x y ) z ) ) +(<= y 1 ) +(== (max z 1 ) 1 ) +(+ 1 x ) +(select w x (|| y z ) ) +(<= w (- x ) ) +(< (< w x ) y ) +(== (select x y (- z w ) ) x ) +(- 0 (! w ) ) +(max y (- z ) ) +(- x (- y ) ) +(- z (- w ) ) +(^ w 0 ) +(select (! w ) (< x y ) z ) +(min (select x y z ) (select w x y ) ) +(== (min x 0 ) 0 ) +(<= (select w x (+ y z ) ) z ) +(select (! w ) (! w ) x ) +(^ (+ x y ) (- z w ) ) +(< (select (select x y z ) w (- x y ) ) x ) +(!= 0 1 ) +(== w (max x y ) ) +(&& (max x (max y z ) ) (max (max x y ) z ) ) +(|| (|| w x ) y ) +(min x 0 ) +(select w (== x y ) z ) +(* y y ) +(* (+ x y ) z ) +(|| (|| x y ) (|| y x ) ) +(== y y ) +(<= y (- z w ) ) +(min w 1 ) +(! (&& (! w ) x ) ) +(&& w y ) +(&& 0 1 ) +(- (max x y ) ) +(< (&& x y ) (&& y x ) ) +(&& (&& x y ) (&& y x ) ) +(select z w (min x (min y z ) ) ) +(< (select w x y ) z ) +(select (select w x y ) y (select x y z ) ) +(select (max x y ) (select z w x ) y ) +(^ (<= w x ) (<= w y ) ) +(^ (min x y ) (min z w ) ) +(<= (select y z (* w x ) ) x ) +(|| (max x y ) (select z w x ) ) +(&& x 0 ) +(- z w ) +(== (select y x z ) z ) +(select x 1 y ) +(* w w ) +(< x 1 ) +(select w x (select y z w ) ) +(max x 0 ) +(min 1 x ) +(select x y (select z w x ) ) +(select (max x (max y z ) ) (max (max x y ) z ) w ) +(select y (! w ) x ) +(== (max x y ) (max y x ) ) +(<= 0 w ) +(min y (- z ) ) +(- (select x y z ) (select w x y ) ) +(!= (select x y z ) (select w x y ) ) +(max (select x y z ) x ) +(select (! w ) y z ) +(select (select x y z ) w z ) +(== (! (max x y ) ) (min (! x ) (! y ) ) ) +(* w (- x y ) ) +(^ (select w x y ) z ) +z +(< x z ) +(<= (select x y z ) (+ w x ) ) +(^ (select (! w ) x y ) (select (! (! w ) ) x y ) ) +(+ x 1 ) +(* x y ) +(&& (min x y ) z ) +(! 1 ) +(select w z x ) +(+ (min x y ) (max x y ) ) +(select (min x y ) z w ) +(+ x (- y ) ) +(== (min x y ) (min z w ) ) +(max (select x y z ) (select w x (max y z ) ) ) +(max w w ) +(max (max x y ) z ) +(== (select z w (min x y ) ) z ) +(|| (select (select x y z ) w (- x y ) ) x ) +(- y (- z ) ) +(< x (select w x y ) ) +(select x 1 1 ) +(<= x 1 ) +(select x 0 0 ) +(!= 1 1 ) +(|| (select w x y ) z ) +(== (min x x ) x ) +(&& z z ) +(* w (min x y ) ) +(+ (+ w x ) z ) +(<= (&& x y ) (&& y x ) ) +(< x 0 ) +(== 1 1 ) +(! (!= w x ) ) +(&& 0 x ) +(select w x 0 ) +(select w (|| x y ) z ) +(< (select w x y ) (+ z w ) ) +(max x (max y (max z w ) ) ) +(min 1 0 ) +(!= w 0 ) +(! (+ w (- x y ) ) ) +(+ (select (select y z w ) x (* y z ) ) y ) +(|| (min x y ) z ) +(<= 0 0 ) +(!= (* x (* y z ) ) (* (* x y ) z ) ) +(!= w w ) +(^ (select (select w x y ) z (+ w x ) ) x ) +(select w x (select w y z ) ) +w +(&& w (+ x y ) ) +(== (|| (&& w x ) y ) (|| w (&& x y ) ) ) +(select w (select x y z ) x ) +(max w (max x y ) ) +(<= 1 x ) +(! (+ x (- y z ) ) ) +(== (! (min 1 x ) ) (max (! 1 ) (! x ) ) ) +(select w x (+ y (+ z w ) ) ) +(max x (+ y z ) ) +(< w (select x y z ) ) +(&& 0 0 ) +(max y (- z w ) ) +(select z (- w x ) y ) +(== (* x y ) (min z w ) ) +(!= (min x y ) (min y x ) ) +(* z 0 ) +(! (! w ) ) +(+ w (+ y x ) ) +(max y z ) +(|| y y ) +(== x (== y (== z w ) ) ) +(- (- y ) z ) +(! (select (<= x y ) (<= y z ) (<= z w ) ) ) +(select y y y ) +(* x (- y ) ) +(!= w (* x y ) ) +(<= (select x y (- z w ) ) w ) +(select w x (- y z ) ) +(- (select (select z w x ) y (min z w ) ) ) +(== (! x ) (! y ) ) +(- (select x y z ) w ) +(== (- (* x y ) ) z ) +(select (min x y ) (min y z ) w ) +(< (select w x (+ y z ) ) y ) +(^ (* x (* y z ) ) (* (* x y ) z ) ) +(< (^ x y ) (^ y x ) ) +(max 1 x ) +(<= w (+ x y ) ) +(&& 1 x ) +(- (+ w (+ x y ) ) ) +(- (* w x ) y ) +(select (&& x (&& y z ) ) (&& (&& x y ) z ) w ) +(< x (< y (< z w ) ) ) +(< 0 x ) +(^ x y ) +(select w x (&& y z ) ) +(|| (min x y ) (max z w ) ) +(select (<= x y ) z w ) +(|| (+ w x ) y ) +(< 1 1 ) +(+ 0 0 ) +(|| (max x y ) (max y z ) ) +(&& x w ) +(|| x (+ y z ) ) +(< (+ x y ) (- z w ) ) +(+ w 0 ) +(< x (! w ) ) +(select (select x y z ) w y ) +(< (! x ) (! y ) ) +(select y y x ) +(== (max 1 0 ) 1 ) +(< x (- y z ) ) +(select (! (! w ) ) y x ) +(|| (select (select z w x ) y (min z w ) ) z ) +(* (min x y ) z ) +(select (|| w x ) y z ) +(* x w ) +(max 1 w ) +(<= w y ) +(* x (- y z ) ) +(max 0 w ) +(< w y ) +(+ (select w x y ) (+ z w ) ) +(&& x 1 ) +(! (+ w x ) ) +(< (select z w (min x y ) ) x ) +(+ (select x y z ) (select w x (+ y z ) ) ) +(! (<= w x ) ) +(!= (select x y z ) w ) +(- 1 1 ) +(!= (max x y ) (max y z ) ) +(- (min x y ) (max x y ) ) +(select w (+ x z ) (+ y z ) ) +(< (+ w x ) y ) +(select (* w x ) y z ) +(select y x (! w ) ) +(< w x ) +(== (max 0 (min w x ) ) (min w x ) ) +(&& (select x y z ) w ) +(== (* w 1 ) w ) +(select w x y ) +(! (+ y (- z w ) ) ) +(< (select (select w x y ) z (+ w x ) ) w ) +(^ (^ w (+ x y ) ) z ) +(* z (- w ) ) +(== (* x (* y z ) ) (* (* x y ) z ) ) +(select w x (<= y z ) ) +(^ w w ) +(- (select (select w x y ) z w ) ) +(+ 0 1 ) +(&& (<= w x ) (<= w y ) ) +(< (min x y ) (max z w ) ) +(min (min w (+ x y ) ) z ) +(- (&& w x ) ) +(!= 0 0 ) +(&& w 0 ) +(|| (max x (max y z ) ) (max (max x y ) z ) ) +(!= (select x y z ) (+ w x ) ) +(select (! w ) y (! w ) ) +(select 1 0 0 ) +(&& w (&& x y ) ) +(< w 1 ) +(+ x y ) +(&& (! w ) x ) +(select w x (- y ) ) +(+ y y ) +(- (&& x y ) ) +(max 1 0 ) +(min (select w x (+ y z ) ) x ) +(== 1 w ) +(select (== x y ) (== z w ) (== w x ) ) +(== (* w 2 ) (* 2 x ) ) +(+ z (- w ) ) +(<= z z ) +(== (min x y ) z ) +(+ (* x y ) z ) +(- (select w x (+ y z ) ) ) +(^ (select w x (+ y z ) ) y ) +(- (+ w (- x y ) ) ) +(select (select z w x ) y (min z w ) ) +(select x y 1 ) +(|| (select w x y ) (+ z w ) ) +(== (select x y z ) (+ w x ) ) +(- (+ w x ) ) +(|| (select w x y ) (select (! w ) x y ) ) +(max w 0 ) +(^ (min x y ) (max x y ) ) +(< w (max x y ) ) +(== (+ x (+ y z ) ) (+ (+ x y ) z ) ) +(|| w z ) +(min (- x ) y ) +(! (|| (! w ) (! x ) ) ) +(^ (select w x y ) (+ z w ) ) +(/ w w ) +(== w (* x y ) ) +(&& 0 w ) +(select w (select x y z ) 0 ) +(^ 1 1 ) +(^ w z ) +(select w (- x ) y ) +(- (<= x y ) ) +(|| (! w ) (! x ) ) +(select (select w x y ) z 0 ) +(== (! (min x y ) ) (max (! x ) (! y ) ) ) +(+ (* w x ) (+ y z ) ) +(! (!= (! w ) x ) ) +(&& (select (select x y z ) w (- x y ) ) w ) +(min w z ) +(select (min w x ) y z ) +(== x (* y z ) ) +(<= w (- x y ) ) +(select (+ (! w ) x ) y z ) +(|| (select (select w x y ) z w ) x ) +(&& (min x y ) (max x y ) ) +(select (! w ) x (+ y z ) ) +(select (! w ) y y ) +(== (min (max w x ) y ) (max (min w y ) x ) ) +(select (select w x y ) z y ) +(select y z (- w x ) ) +(max z (- w ) ) +(&& (max x y ) z ) +(|| z 0 ) +(<= (+ 1 w ) (+ 2 x ) ) +(^ 0 w ) +(! (select x y (- z w ) ) ) +(^ (select x y (- z w ) ) z ) +(select (! w ) z x ) +(^ w (+ x y ) ) +(== (&& x y ) (&& y x ) ) +(^ (< w x ) (< w y ) ) +(<= (min x y ) (min y z ) ) +(select w w y ) +(< 0 1 ) +(+ (select (! w ) x y ) (select (! (! w ) ) x y ) ) +(^ (* x y ) (min z w ) ) +(select y z (select x w z ) ) +(max (- z ) w ) +(min (select w x y ) (+ z w ) ) +(<= (! x ) (! y ) ) +(^ 1 0 ) +(- y 0 ) +(- (min w x ) ) +(min (min x y ) z ) +(^ (+ x (+ y z ) ) (+ (+ x y ) z ) ) +(min (select (select y z w ) x (* y z ) ) w ) +(< w (< x y ) ) +(select y x x ) +(select w x (+ y z ) ) +(^ z z ) +(* y z ) +(&& (- x ) (- y ) ) +(&& x x ) +(|| (+ x (+ y z ) ) (+ (+ x y ) z ) ) +(* (+ w x ) z ) +(select (! w ) x (! y ) ) +(== 0 x ) +(+ (- x ) y ) +(select z 0 0 ) +(<= (min w x ) w ) +(== (max 0 x ) x ) +(== (select (select w x y ) z w ) z ) +(- x (- y (- z w ) ) ) +(<= z 0 ) +(- x x ) +(<= z (- w x ) ) +(max x y ) +(^ w 1 ) +(min z 0 ) +(* w z ) +(&& (select x y z ) (select w x y ) ) +(&& w (&& y x ) ) +(<= z w ) +(< (- w ) x ) +(select 0 1 w ) +(* x 0 ) +(- z 1 ) +(* w 1 ) +(* w (max y z ) ) +(select x (! w ) (! w ) ) +(select y z (select w x y ) ) +(max (- w ) x ) +(select z (select w x y ) z ) +(< (select y z (* w x ) ) w ) +(max (select (select w x y ) z (+ w x ) ) z ) +(^ (+ w x ) y ) +(|| x (! w ) ) +(* (* w x ) y ) +(- (max x y ) z ) +(* w (+ x y ) ) +(&& (select x y z ) (select w x (&& y z ) ) ) +(|| 1 x ) +(&& (max x y ) (max y z ) ) +(== (select x 0 y ) y ) +(* z z ) +(<= x (- y z ) ) +(min w (max x y ) ) +(|| (select w x (+ y z ) ) x ) +(== (max x y ) (select z w x ) ) +(|| 1 0 ) +(select (! w ) (select (! w ) x y ) z ) +(== (max w x ) (max x w ) ) +(! (select y z (* w x ) ) ) +(max x z ) +(!= (+ x (+ y z ) ) (+ (+ x y ) z ) ) +(select (max (! w ) x ) y z ) +(! (<= x y ) ) +(select 1 0 x ) +(!= y 0 ) +(^ (^ w x ) z ) +(max w x ) +(^ (min x y ) (min y z ) ) +(- x 0 ) +(< (* x (* y z ) ) (* (* x y ) z ) ) +(== (min 0 (+ w x ) ) 0 ) +(&& w 1 ) +(max x (* y z ) ) +(<= x x ) +(min (select x y z ) x ) +(== x (+ y z ) ) +(! (< x y ) ) +(&& (max x y ) (select z w x ) ) +(&& (min x y ) (min y z ) ) +(- (max w x ) ) +(select x (select w y z ) y ) +(|| (select x y (- z w ) ) y ) +(+ 1 w ) +(== w w ) +(min y 0 ) +(|| (select x y z ) (select w x y ) ) +(* 1 0 ) +(|| (^ x y ) (^ y x ) ) +(!= x w ) +(! (&& w x ) ) +(|| (< w x ) (< w y ) ) +(== (|| x y ) (|| y x ) ) +(select (! w ) z y ) +(== (max 1 (+ x y ) ) (min z y ) ) +(- w (max y z ) ) +(== (select (select y z w ) x (* y z ) ) w ) +(- (|| x y ) ) +(min w (select x y z ) ) +(< w (+ x y ) ) +(&& (< w x ) (< w y ) ) +(- (max w (max x y ) ) ) +(min (- w ) x ) +(select (! w ) x z ) +(== (select (select w x y ) z (+ w x ) ) y ) +(== (min w x ) (select (<= w x ) w x ) ) +(< w (* x y ) ) +(<= (^ x y ) (^ y x ) ) +(- (select z w (min x y ) ) ) +(^ (^ w y ) z ) +(== (! x ) y ) +(|| z z ) +(select (! w ) x (< y z ) ) +(+ (select (select z w x ) y (min z w ) ) z ) +(- 1 0 ) +(min (select w x y ) z ) +(< (max x y ) (max y z ) ) +(max (- y ) z ) +(max 0 0 ) +(^ (select x y z ) (select w x (^ y z ) ) ) +(&& (&& x y ) z ) +(max (max w x ) y ) +(^ x (^ w x ) ) +(select (!= w x ) y z ) +(<= (+ w x ) y ) +(^ y 1 ) +(* w (* y x ) ) +(- w z ) +(select (! w ) z z ) +(== (+ w 1 ) (+ 1 x ) ) +(<= y y ) +(* w y ) +(select x (- y z ) w ) +(- w w ) +(< (* x y ) (min z w ) ) +(select (== (! w ) x ) y z ) +(select (! (! w ) ) x y ) +(* w 0 ) +(select (select x y z ) (select w x (select y z w ) ) z ) +(- (* x y ) z ) +(* (select x y z ) (select w x (* y z ) ) ) +(! (|| w x ) ) +(<= w 0 ) +(!= (&& x (&& y z ) ) (&& (&& x y ) z ) ) +(select x y (! w ) ) +(== y z ) +(&& 1 0 ) +(min x (+ y z ) ) +(^ w x ) +(select x y (- z w ) ) +(- (min w (min x y ) ) ) +(select (max x y ) (max y z ) w ) +(&& (* x y ) (min z w ) ) +(== 0 w ) +(== (select w x y ) (+ z w ) ) +(+ w w ) +(select x y (select z (select w x y ) z ) ) +(select x w y ) +(select (max x y ) z w ) +(+ y (- z ) ) +(<= (select (select z w x ) y (min z w ) ) w ) +(- x (* y z ) ) +(max (! x ) y ) +(! (min w x ) ) +(select w (<= x y ) z ) +(select w y w ) +(&& (select w x (+ y z ) ) z ) +(select (* (! w ) x ) y z ) +(min (select (select x y z ) w (- x y ) ) z ) +(max (select y z (* w x ) ) z ) +(select y z (- w ) ) +(!= w (+ x y ) ) +(!= (! x ) (! y ) ) +(select z z w ) +(<= (min x (min y z ) ) (min (min x y ) z ) ) +(+ 0 w ) +(<= (<= w x ) y ) +(!= (+ x y ) (+ y x ) ) +(== (max (min w x ) y ) (min (max w y ) x ) ) +(<= (select x y z ) (select w x y ) ) +(|| 0 1 ) +(<= (select (select w x y ) z (+ w x ) ) x ) +(|| (&& x y ) (&& y x ) ) +(select (! w ) (- x y ) z ) +(select z z z ) +(<= x (<= y (<= z w ) ) ) +(! (|| (! w ) x ) ) +(< (min x y ) (min z w ) ) +(* 0 1 ) +(<= x (+ y z ) ) +(^ (select y z (* w x ) ) w ) +(- (! x ) y ) +(- x 1 ) +(!= w 1 ) +(max w (select x y z ) ) +(* y (- z ) ) +(<= (select x y z ) w ) +(|| (* x y ) (min z w ) ) +(^ y 0 ) +(! (<= (! w ) x ) ) +(!= (min x y ) (min z w ) ) +(== (min (max x w ) y ) (max (min x y ) w ) ) +(min z (- w x ) ) +(min 0 1 ) +(+ x 0 ) +(== (min w x ) (min x w ) ) +(|| (&& w x ) (! y ) ) +(+ (select w x y ) (select (! w ) x y ) ) +(! (select (select z w x ) y (min z w ) ) ) +(- w (min x y ) ) +(!= y 1 ) +(^ (max x y ) (select z w x ) ) +(- x z ) +(- (select w x y ) z ) +(== (+ 0 w ) w ) +(max (max w x ) z ) +(&& (select x y z ) (+ w x ) ) +(- (* w x ) (+ y z ) ) +(+ z 1 ) +(min w w ) +(|| 0 w ) +(max (select w x y ) z ) +(< (max x y ) (max z w ) ) +(select z w (select y x w ) ) +(! (select (select x y z ) w (- x y ) ) ) +(== (+ x y ) (+ y x ) ) +(- y z ) +1 +(max x (- y ) ) +(&& z 0 ) +(^ (select x y z ) (select w x y ) ) +(< (min x y ) (min y z ) ) +(! w ) +(select (== x y ) z w ) +(|| (|| x y ) z ) +(!= (!= w x ) y ) +(|| w (- x y ) ) +(select w 0 (select x y z ) ) +(+ (select x y z ) w ) +(== (== w (+ x y ) ) z ) +(^ y (- z w ) ) +(!= (* x y ) (min z w ) ) +(- (min x y ) ) +(max x (- y z ) ) +(select (&& w x ) y z ) +(select (select w x y ) x z ) +(== z (- w x ) ) +(- (+ (select w x y ) z ) ) +(!= (|| x (|| y z ) ) (|| (|| x y ) z ) ) +(select (! w ) 0 (select x y z ) ) +(== (select y z (* w x ) ) y ) +(select (! w ) x (- y ) ) +(&& (select (select y z w ) x (* y z ) ) x ) +(^ (select (select z w x ) y (min z w ) ) w ) +(max 1 1 ) +(- (+ x (- y z ) ) ) +(select x y (select w z y ) ) +(^ z 1 ) +(< (+ x (+ y z ) ) (+ (+ x y ) z ) ) +(max (max w (+ x y ) ) z ) +(- (min x y ) z ) +(!= (- x ) (- y ) ) +(max x w ) +(select (select w x y ) (select z w x ) y ) +(select z x y ) +(!= w (min x y ) ) +(+ (* w x ) z ) +(select (|| x y ) (|| y x ) z ) +(&& x (select w x y ) ) +(^ x z ) +(max (select w x (+ y z ) ) x ) +(min w (- x y ) ) +(<= (+ w 1 ) x ) +(|| (select x y z ) x ) +(== (min x (min y z ) ) (min (min x z ) y ) ) +(- (== x y ) ) +(== w (select x y z ) ) +(== (|| x (|| y z ) ) (|| (|| x y ) z ) ) +(* (- w ) x ) +(! (select w x (select y z w ) ) ) +(+ (select x y (- z w ) ) w ) +(<= (select z w (min x y ) ) y ) +(|| (select z w (min x y ) ) w ) +(- y y ) +(max x x ) +(max (max w y ) z ) +(- (+ x y ) ) +(< x x ) +(! (select w x (+ y z ) ) ) +(== (+ x y ) (- z w ) ) +(select x y (- z (- w x ) ) ) +(<= (|| x y ) (|| y x ) ) +(select z w (select x (select y z w ) x ) ) +(select x 1 0 ) +(min (- z ) w ) +(- w (- x ) ) +(* x (select w x y ) ) +(- 0 0 ) +(<= (+ x y ) (- z w ) ) +(== (select 1 y z ) y ) +(^ (== x y ) (== z w ) ) +(^ (&& x y ) (&& y x ) ) +(- (select w x y ) (+ z w ) ) +(&& 1 w ) +(== (max x y ) (max z w ) ) +(< (select x y z ) w ) +(|| w w ) +(- w (+ x y ) ) +(&& y (- z w ) ) +(select (! w ) (&& x y ) z ) +(! (|| x y ) ) +(select (* x y ) (min z w ) x ) +(select y (select z w x ) y ) +(<= x (select w x y ) ) +(< (min x y ) z ) +(|| (max x y ) z ) +(&& (select w x y ) z ) +(== (- x ) (- y ) ) +(&& (select w x y ) (+ z w ) ) +(!= (max x y ) (max z w ) ) +(== y (- z w ) ) +(!= (max x y ) (max y x ) ) +(min w (min x y ) ) +(! (* x y ) ) +(== (&& x (&& y z ) ) (&& (&& x y ) z ) ) +(^ (select (select w x y ) z w ) w ) +(select 1 1 0 ) +(select (|| (! w ) x ) y z ) +(- (+ z (- w x ) ) ) +(select (^ x y ) (^ y x ) z ) +(+ z w ) +(- z ) +(* (select (select z w x ) y (min z w ) ) w ) +(== (- w ) (- x ) ) +(- (+ (max x y ) z ) ) +(|| w (|| x y ) ) +(! (+ z (- w x ) ) ) +(<= y z ) +(|| (select (select y z w ) x (* y z ) ) y ) +(max (select (select y z w ) x (* y z ) ) x ) +(- x y ) +(+ (select (select w x y ) z w ) x ) +(min w 0 ) +(max (+ w x ) y ) +(- (+ w y ) z ) +(select (select w x y ) z w ) +(* (- x ) y ) +(!= (+ x y ) (- z w ) ) +(select y w x ) +(select w x 1 ) +(! (select (select w x y ) z w ) ) +(^ (select z w (min x y ) ) x ) +(|| (+ x y ) (- z w ) ) +(== (min w w ) w ) +(select x y (- z ) ) +(select w x (select y (select z w x ) y ) ) +(== x w ) +(== (! (&& w x ) ) (|| (! w ) (! x ) ) ) +(<= x y ) +(select y y z ) +(+ z 0 ) +(select (! w ) 1 0 ) +(* (select (select w x y ) z (+ w x ) ) x ) +(^ x (select w x y ) ) +(- (select (min x y ) z w ) ) +(select w x (min y z ) ) +(== (max w (max x y ) ) (max w (max x y ) ) ) +(select (select x y z ) w (- x y ) ) +(select w 1 y ) +(min x y ) +(!= (* x y ) (* y x ) ) +(|| z 1 ) +(== (select x y z ) w ) +(! z ) +(== (min x y ) (max z w ) ) +(select y 1 0 ) diff --git a/jfp/cs2/halide/w-A5-A5-derive.json b/jfp/cs2/halide/w-A5-A5-derive.json new file mode 100644 index 00000000..d4cdd89f --- /dev/null +++ b/jfp/cs2/halide/w-A5-A5-derive.json @@ -0,0 +1,491 @@ +{ + "duration": { + "secs": 0, + "nanos": 105431375 + }, + "num_rules": 554, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [] +} diff --git a/jfp/cs2/halide/w-A5-Enumo-derive.json b/jfp/cs2/halide/w-A5-Enumo-derive.json new file mode 100644 index 00000000..6a83c8ee --- /dev/null +++ b/jfp/cs2/halide/w-A5-Enumo-derive.json @@ -0,0 +1,852 @@ +{ + "duration": { + "secs": 23, + "nanos": 451564417 + }, + "num_rules": 554, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)" + ], + "cannot": [ + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ] +} diff --git a/jfp/cs2/halide/w-A5-Halide-derive.json b/jfp/cs2/halide/w-A5-Halide-derive.json new file mode 100644 index 00000000..54951d1a --- /dev/null +++ b/jfp/cs2/halide/w-A5-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 20, + "nanos": 252917459 + }, + "num_rules": 554, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min ?x ?x) ==> ?x", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(== ?x 1) ==> ?x", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ 0 ?x) ==> 0", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)" + ] +} diff --git a/jfp/cs2/halide/w-A5.rules b/jfp/cs2/halide/w-A5.rules new file mode 100644 index 00000000..0ffa8948 --- /dev/null +++ b/jfp/cs2/halide/w-A5.rules @@ -0,0 +1,74 @@ +(&& ?a ?a) ==> (/ ?a ?a) +(/ ?a ?a) ==> (&& ?a ?a) +(<= (- ?b) ?a) ==> (== (min 0 (+ ?b ?a)) 0) +(== (min 0 (+ ?b ?a)) 0) ==> (<= (- ?b) ?a) +(< ?b ?a) ==> (<= (+ ?b 1) ?a) +(<= (+ ?b 1) ?a) ==> (< ?b ?a) +(== (! (min ?b ?a)) (! (* ?b ?a))) ==> (== (! (max ?b ?a)) (! (|| ?b ?a))) +(== (! (max ?b ?a)) (! (|| ?b ?a))) ==> (== (! (min ?b ?a)) (! (* ?b ?a))) +(^ ?b ?a) ==> (== (|| ?b ?a) (! (* ?b ?a))) +(== (|| ?b ?a) (! (* ?b ?a))) ==> (^ ?b ?a) +(^ (min ?b ?a) (max ?b ?a)) ==> (^ ?b ?a) +(^ ?b ?a) ==> (^ (min ?b ?a) (max ?b ?a)) +(&& (min ?b ?a) (max ?b ?a)) ==> (&& ?b ?a) +(&& ?b ?a) ==> (&& (min ?b ?a) (max ?b ?a)) +(|| ?b ?a) ==> (|| (min ?b ?a) (max ?b ?a)) +(|| (min ?b ?a) (max ?b ?a)) ==> (|| ?b ?a) +(+ (min ?b ?a) (max ?b ?a)) ==> (+ ?b ?a) +(+ ?b ?a) ==> (+ (min ?b ?a) (max ?b ?a)) +(== (+ ?b ?b) (+ ?a ?a)) ==> (== ?b ?a) +(== ?b ?a) ==> (== (+ ?b ?b) (+ ?a ?a)) +(== (select ?b ?a ?b) ?a) ==> (|| ?b (! ?a)) +(|| ?b (! ?a)) ==> (== (select ?b ?a ?b) ?a) +(select (<= ?b ?a) ?b ?a) ==> (min ?b ?a) +(min ?b ?a) ==> (select (<= ?b ?a) ?b ?a) +(== (&& (|| ?c ?b) ?a) (|| (&& ?c ?a) (&& ?b ?a))) ==> (== (min ?c ?b) (select (<= ?c ?b) ?c ?b)) +(== (min (min ?c ?b) ?a) (min (min ?c ?b) ?a)) ==> (== (min ?c ?b) (select (<= ?c ?b) ?c ?b)) +(== (min (max ?c ?a) ?b) (max (min ?c ?b) ?a)) ==> (<= ?a ?b) +(^ (select ?c ?b ?a) (select ?c ?a ?b)) ==> (^ (min ?b ?a) (max ?b ?a)) +(&& (select ?c ?b ?a) (select ?c ?a ?b)) ==> (&& (min ?b ?a) (max ?b ?a)) +(|| (select ?c ?a ?b) (select ?c ?b ?a)) ==> (|| (min ?a ?b) (max ?a ?b)) +(+ (select ?c ?b ?a) (select ?c ?a ?b)) ==> (+ (min ?b ?a) (max ?b ?a)) +(* (select ?c ?b ?a) (select ?c ?a ?b)) ==> (* (min ?b ?a) (max ?b ?a)) +(^ (select ?c ?b ?a) (select ?c ?a ?b)) ==> (^ ?b ?a) +(|| (select ?c ?b ?a) (select ?c ?a ?b)) ==> (|| ?b ?a) +(&& (select ?c ?a ?b) (select ?c ?b ?a)) ==> (&& ?a ?b) +(+ (select ?c ?a ?b) (select ?c ?b ?a)) ==> (+ ?a ?b) +(* (select ?c ?a ?b) (select ?c ?b ?a)) ==> (* ?a ?b) +(&& (select ?b ?a ?c) ?b) ==> (&& (min ?b ?a) (max ?b ?a)) +(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a)) +(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a)) +(< ?c (min ?b ?a)) ==> (&& (< ?c ?b) (< ?c ?a)) +(&& (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a)) +(|| (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (max ?c ?a)) +(<= ?b (max ?c ?a)) ==> (|| (<= ?b ?c) (<= ?b ?a)) +(<= ?c (min ?b ?a)) ==> (&& (<= ?c ?b) (<= ?c ?a)) +(&& (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (min ?b ?a)) +(|| (&& ?c ?a) (&& ?b ?a)) ==> (&& (|| ?c ?b) ?a) +(&& (|| ?c ?b) ?a) ==> (|| (&& ?c ?a) (&& ?b ?a)) +(&& (select ?a ?c ?b) ?a) ==> (&& ?a ?c) +(|| (select ?b ?c ?a) ?b) ==> (|| ?b ?a) +(select ?b ?a (* ?d (* ?c ?b))) ==> (select ?b ?a 0) +(select ?a ?d (select ?c ?b ?a)) ==> (select ?a ?d (select ?c ?b 0)) +(select ?a ?d (select ?c ?b 0)) ==> (select ?a ?d (select ?c ?b ?a)) +(&& (select ?d ?c (* ?b ?a)) ?a) ==> (&& (select (select ?d ?c ?b) ?a (* ?d ?c)) ?a) +(&& (select (select ?d ?c ?b) ?a (* ?d ?c)) ?a) ==> (&& (select ?d ?c (* ?b ?a)) ?a) +(|| (select ?c ?b ?a) (select ?d ?c (|| ?b ?a))) ==> (|| (select ?d ?c ?b) ?a) +(|| (select ?d ?c ?b) ?a) ==> (|| (select ?c ?b ?a) (select ?d ?c (|| ?b ?a))) +(|| (select (select ?a ?b ?d) ?c (* ?a ?b)) ?a) ==> (|| (&& ?d ?c) ?a) +(* (select ?a ?b (- ?d ?c)) ?a) ==> (* (select ?c ?a ?b) (select ?c ?b ?a)) +(* (select ?b ?a (- ?d ?c)) ?b) ==> (* (min ?b ?a) (max ?b ?a)) +(select ?a ?d (- ?c (- ?b ?a))) ==> (select ?a ?d (- ?c ?b)) +(select ?a ?d (- ?c ?b)) ==> (select ?a ?d (- ?c (- ?b ?a))) +(select ?d ?c (+ ?b ?a)) ==> (select ?d ?c (+ ?b (+ ?d ?a))) +(select ?d ?c (+ ?b (+ ?d ?a))) ==> (select ?d ?c (+ ?b ?a)) +(select ?d (+ ?c ?a) (+ ?b ?a)) ==> (+ (select ?d ?c ?b) ?a) +(+ (select ?d ?c ?b) ?a) ==> (select ?d (+ ?c ?a) (+ ?b ?a)) +(* (select ?a ?d (* ?c ?b)) ?a) ==> (* ?a ?d) +(select ?d ?a (select ?c ?b ?a)) ==> (select (|| ?d (! ?c)) ?a ?b) +(select (|| ?d (! ?c)) ?a ?b) ==> (select ?d ?a (select ?c ?b ?a)) +(+ (+ ?d (+ ?c ?b)) ?a) ==> (+ ?c (+ ?b (+ ?d ?a))) +(+ ?c (+ ?b (+ ?d ?a))) ==> (+ (+ ?d (+ ?c ?b)) ?a) +(select ?d (select ?c ?b ?a) ?a) ==> (select (* ?d ?c) ?b ?a) +(select (* ?d ?c) ?b ?a) ==> (select ?d (select ?c ?b ?a) ?a) +(select ?c ?d (select ?c ?b ?a)) ==> (select ?c ?d ?a) diff --git a/jfp/cs2/halide/w-Enumo-A5-derive.json b/jfp/cs2/halide/w-Enumo-A5-derive.json new file mode 100644 index 00000000..b44f6b4a --- /dev/null +++ b/jfp/cs2/halide/w-Enumo-A5-derive.json @@ -0,0 +1,492 @@ +{ + "duration": { + "secs": 17, + "nanos": 980027959 + }, + "num_rules": 895, + "num_against": 480, + "can": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))" + ] +} diff --git a/jfp/cs2/halide/w-Enumo-Enumo-derive.json b/jfp/cs2/halide/w-Enumo-Enumo-derive.json new file mode 100644 index 00000000..f64cbfbd --- /dev/null +++ b/jfp/cs2/halide/w-Enumo-Enumo-derive.json @@ -0,0 +1,851 @@ +{ + "duration": { + "secs": 0, + "nanos": 105393625 + }, + "num_rules": 895, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [] +} diff --git a/jfp/cs2/halide/w-Enumo-Halide-derive.json b/jfp/cs2/halide/w-Enumo-Halide-derive.json new file mode 100644 index 00000000..8a856723 --- /dev/null +++ b/jfp/cs2/halide/w-Enumo-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 10, + "nanos": 429029041 + }, + "num_rules": 895, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min ?x ?x) ==> ?x", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(== ?x 1) ==> ?x", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ 0 ?x) ==> 0", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)" + ] +} diff --git a/jfp/cs2/halide/w-Enumo.rules b/jfp/cs2/halide/w-Enumo.rules new file mode 100644 index 00000000..2c923602 --- /dev/null +++ b/jfp/cs2/halide/w-Enumo.rules @@ -0,0 +1,55 @@ +(&& ?a ?a) ==> (/ ?a ?a) +(/ ?a ?a) ==> (&& ?a ?a) +(select (! ?b) (! ?b) ?a) ==> (select ?b ?a 1) +(select ?b ?a 1) ==> (select (! ?b) (! ?b) ?a) +(< ?b ?a) ==> (<= (+ ?b 1) ?a) +(<= (+ ?b 1) ?a) ==> (< ?b ?a) +(== (! (min ?b ?a)) (! (* ?b ?a))) ==> (== (! (max ?b ?a)) (! (|| ?b ?a))) +(== (! (max ?b ?a)) (! (|| ?b ?a))) ==> (== (! (min ?b ?a)) (! (* ?b ?a))) +(^ ?b ?a) ==> (== (|| ?b ?a) (! (* ?b ?a))) +(== (|| ?b ?a) (! (* ?b ?a))) ==> (^ ?b ?a) +(== (+ ?b ?b) (+ ?a ?a)) ==> (== ?b ?a) +(== ?b ?a) ==> (== (+ ?b ?b) (+ ?a ?a)) +(select (<= ?b ?a) ?b ?a) ==> (min ?b ?a) +(min ?b ?a) ==> (select (<= ?b ?a) ?b ?a) +(select ?a (! ?b) ?a) ==> (&& ?a (! ?b)) +(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a) +(== (&& (|| ?c ?b) ?a) (&& (|| ?c ?b) ?a)) ==> (== (min ?c ?b) (select (<= ?c ?b) ?c ?b)) +(== (min (min ?c ?b) ?a) (min (min ?c ?b) ?a)) ==> (== (min ?c ?b) (select (<= ?c ?b) ?c ?b)) +(&& ?c (&& ?b ?a)) ==> (&& (* (* ?c ?b) ?a) (* (* ?c ?b) ?a)) +(&& (* (* ?c ?b) ?a) (* (* ?c ?b) ?a)) ==> (&& ?c (&& ?b ?a)) +(== (min (max ?c ?a) ?b) (max (min ?c ?b) ?a)) ==> (<= ?a ?b) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (^ (min ?b ?a) (max ?b ?a)) +(&& (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (&& (min ?b ?a) (max ?b ?a)) +(|| (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (|| (min ?b ?a) (max ?b ?a)) +(+ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (+ (min ?b ?a) (max ?b ?a)) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (!= (! ?b) (! ?a)) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (^ ?b ?a) +(|| (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (|| ?b ?a) +(&& (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (&& ?b ?a) +(+ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (+ ?b ?a) +(* (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (* ?b ?a) +(&& (select ?b ?a ?c) ?b) ==> (&& (min ?b ?a) (max ?b ?a)) +(&& (select ?a ?c ?b) ?a) ==> (&& ?a ?c) +(|| (select ?b ?c ?a) ?b) ==> (|| ?b ?a) +(select ?a ?d (select ?c ?b ?a)) ==> (select ?a ?d (select ?c ?b 0)) +(select ?a ?d (select ?c ?b 0)) ==> (select ?a ?d (select ?c ?b ?a)) +(&& (select ?d ?c (* ?b ?a)) ?a) ==> (&& (select (select ?d ?c ?b) ?a (* ?d ?c)) ?a) +(&& (select (select ?d ?c ?b) ?a (* ?d ?c)) ?a) ==> (&& (select ?d ?c (* ?b ?a)) ?a) +(|| (select ?c ?b ?a) (select ?d ?c (|| ?b ?a))) ==> (|| (select ?d ?c ?b) ?a) +(|| (select ?d ?c ?b) ?a) ==> (|| (select ?c ?b ?a) (select ?d ?c (|| ?b ?a))) +(|| (select (select ?a ?b ?d) ?c (* ?a ?b)) ?a) ==> (|| (&& ?d ?c) ?a) +(* (select ?b ?a (- ?d ?c)) ?b) ==> (* (select ?c ?b ?a) (select (! ?c) ?b ?a)) +(* (select ?a ?d (* ?c ?b)) ?a) ==> (* ?a ?d) +(select ?d ?a (select ?c ?b ?a)) ==> (select (|| ?d (! ?c)) ?a ?b) +(select (|| ?d (! ?c)) ?a ?b) ==> (select ?d ?a (select ?c ?b ?a)) +(select ?d (select ?c ?b ?a) ?a) ==> (select (&& ?d ?c) ?b ?a) +(select (&& ?d ?c) ?b ?a) ==> (select ?d (select ?c ?b ?a) ?a) +(select ?d (select ?d ?c ?b) ?a) ==> (select (! ?d) ?a ?c) +(select ?c ?d (select ?c ?b ?a)) ==> (select (! ?c) ?a ?d) +(select ?d (select ?d ?c ?b) ?a) ==> (select ?d ?c ?a) +(select ?c ?d (select ?c ?b ?a)) ==> (select ?c ?d ?a) +(select (* ?d ?c) ?b ?a) ==> (select (&& ?d ?c) ?b ?a) +(select (&& ?d ?c) ?b ?a) ==> (select (* ?d ?c) ?b ?a) +(select (!= ?d ?c) ?b ?a) ==> (select (- ?d ?c) ?b ?a) +(select (- ?d ?c) ?b ?a) ==> (select (!= ?d ?c) ?b ?a) diff --git a/jfp/cs2/halide/w-LLM-2-Enumo-derive.json b/jfp/cs2/halide/w-LLM-2-Enumo-derive.json new file mode 100644 index 00000000..99283d1b --- /dev/null +++ b/jfp/cs2/halide/w-LLM-2-Enumo-derive.json @@ -0,0 +1,852 @@ +{ + "duration": { + "secs": 132, + "nanos": 891209167 + }, + "num_rules": 348, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> -1", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(min 0 (max ?a 1)) ==> 0", + "(max 0 (min ?a -1)) ==> 0", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> 0", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(<= ?a ?a) ==> 1", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ], + "cannot": [ + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))" + ] +} diff --git a/jfp/cs2/halide/w-LLM-2-Halide-derive.json b/jfp/cs2/halide/w-LLM-2-Halide-derive.json new file mode 100644 index 00000000..b6e0747c --- /dev/null +++ b/jfp/cs2/halide/w-LLM-2-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 5, + "nanos": 586355041 + }, + "num_rules": 348, + "num_against": 725, + "can": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* 0 ?x) ==> 0", + "(* ?x 0) ==> 0", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 0) ==> (! ?x)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ 0 ?x) ==> 0", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min ?x ?x) ==> ?x", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ], + "cannot": [ + "(! (! ?x)) ==> ?x", + "(* 1 ?x) ==> ?x", + "(* ?x 1) ==> ?x", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(== ?x 1) ==> ?x", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(- ?x 0) ==> ?x", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))" + ] +} diff --git a/jfp/cs2/halide/w-LLM-2.rules b/jfp/cs2/halide/w-LLM-2.rules new file mode 100644 index 00000000..1cb4c532 --- /dev/null +++ b/jfp/cs2/halide/w-LLM-2.rules @@ -0,0 +1,119 @@ +(== (max ?a 0) ?a) ==> (<= 0 ?a) +(<= 0 ?a) ==> (== (max ?a 0) ?a) +(== (max ?a 1) 1) ==> (<= ?a 1) +(<= ?a 1) ==> (== (max ?a 1) 1) +(! (min ?a 1)) ==> (! ?a) +(! ?a) ==> (! (min ?a 1)) +(/ ?a ?a) ==> (&& ?a 1) +(&& ?a 1) ==> (/ ?a ?a) +(== (select ?b 0 ?a) ?a) ==> (max (! ?b) (! ?a)) +(max (! ?b) (! ?a)) ==> (== (select ?b 0 ?a) ?a) +(== (select ?b ?a 0) ?a) ==> (|| ?b (! ?a)) +(|| ?b (! ?a)) ==> (== (select ?b ?a 0) ?a) +(== (! (min ?b ?a)) (max (! ?b) (! ?a))) ==> (== (! (max ?b ?a)) (min (! ?b) (! ?a))) +(== (! (max ?b ?a)) (min (! ?b) (! ?a))) ==> (== (! (min ?b ?a)) (max (! ?b) (! ?a))) +(== (! ?b) (|| (! ?a) (! ?a))) ==> (^ (! ?a) ?b) +(^ (! ?a) ?b) ==> (== (! ?b) (|| (! ?a) (! ?a))) +(^ ?b ?a) ==> (== (|| ?b ?a) (! (&& ?b ?a))) +(== (|| ?b ?a) (! (&& ?b ?a))) ==> (^ ?b ?a) +(!= (! ?b) (! ?a)) ==> (&& (^ ?b ?a) (^ ?b ?a)) +(&& (^ ?b ?a) (^ ?b ?a)) ==> (!= (! ?b) (! ?a)) +(!= (! ?b) (! ?a)) ==> (|| (^ ?b ?a) (^ ?b ?a)) +(|| (^ ?b ?a) (^ ?b ?a)) ==> (!= (! ?b) (! ?a)) +(!= (min ?b ?a) (min ?b ?a)) ==> (== (! ?b) ?b) +(^ (&& ?b ?a) (&& ?b ?a)) ==> (== (! ?b) ?b) +(^ (|| ?b ?a) (|| ?b ?a)) ==> (== (! ?b) ?b) +(!= (max ?b ?a) (max ?b ?a)) ==> (== (! ?b) ?b) +(!= (^ ?b ?a) (^ ?b ?a)) ==> (== (! ?b) ?b) +(^ (^ ?b ?a) (^ ?b ?a)) ==> (== (! ?b) ?b) +(== (+ ?b ?b) (+ ?a ?a)) ==> (== ?b ?a) +(== ?b ?a) ==> (== (+ ?b ?b) (+ ?a ?a)) +(<= (- ?b) (- ?a)) ==> (! (< ?b ?a)) +(! (< ?b ?a)) ==> (<= (- ?b) (- ?a)) +(select ?a (! ?b) ?a) ==> (&& ?a (! ?b)) +(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a) +(min (! ?b) (! ?a)) ==> (! (|| ?b ?a)) +(! (|| ?b ?a)) ==> (min (! ?b) (! ?a)) +(! (* ?b ?a)) ==> (max (! ?b) (! ?a)) +(max (! ?b) (! ?a)) ==> (! (* ?b ?a)) +(! (! (&& ?b ?a))) ==> (&& ?b ?a) +(&& ?b ?a) ==> (! (! (&& ?b ?a))) +(! (! (|| ?b ?a))) ==> (|| ?b ?a) +(|| ?b ?a) ==> (! (! (|| ?b ?a))) +(^ ?a (^ ?b ?a)) ==> (&& ?b ?b) +(^ ?a (^ ?b ?a)) ==> (/ ?b ?b) +(^ ?a (^ ?b ?a)) ==> (|| ?b ?b) +(! (<= ?b ?a)) ==> (< ?a ?b) +(< ?a ?b) ==> (! (<= ?b ?a)) +(== (min ?c (min ?a ?b)) (min ?c (min ?a ?b))) ==> (== (! (min ?a 1)) (! ?a)) +(|| (min ?c (min ?b ?a)) (min ?c (min ?b ?a))) ==> (&& (min ?c (min ?b ?a)) (min ?c (min ?b ?a))) +(&& (min ?c (min ?b ?a)) (min ?c (min ?b ?a))) ==> (|| (min ?c (min ?b ?a)) (min ?c (min ?b ?a))) +(&& (+ (+ ?c ?b) ?a) (+ (+ ?c ?b) ?a)) ==> (|| (+ (+ ?c ?b) ?a) (+ (+ ?c ?b) ?a)) +(|| (+ (+ ?c ?b) ?a) (+ (+ ?c ?b) ?a)) ==> (&& (+ (+ ?c ?b) ?a) (+ (+ ?c ?b) ?a)) +(&& (* (* ?c ?b) ?a) (* (* ?c ?b) ?a)) ==> (|| (* (* ?c ?b) ?a) (* (* ?c ?b) ?a)) +(|| (* (* ?c ?b) ?a) (* (* ?c ?b) ?a)) ==> (&& (* (* ?c ?b) ?a) (* (* ?c ?b) ?a)) +(|| (max (max ?c ?b) ?a) (max (max ?c ?b) ?a)) ==> (&& (max (max ?c ?b) ?a) (max (max ?c ?b) ?a)) +(&& (max (max ?c ?b) ?a) (max (max ?c ?b) ?a)) ==> (|| (max (max ?c ?b) ?a) (max (max ?c ?b) ?a)) +(== (min ?a (min ?b ?c)) (min ?a (min ?b ?c))) ==> (== (&& ?a (! ?b)) (! (|| ?b (! ?a)))) +(== (min ?b (min ?a ?c)) (min ?b (min ?a ?c))) ==> (== (&& ?a (! ?b)) (! (|| ?b (! ?a)))) +(!= (&& ?c (&& ?b ?a)) (&& ?c (&& ?b ?a))) ==> (!= (&& ?c ?b) (&& ?c ?b)) +(== (max (min ?c ?b) ?a) (min (max ?c ?a) ?b)) ==> (<= (- ?b) (- ?a)) +(&& ?c (&& ?b ?a)) ==> (&& (* (* ?c ?b) ?a) (* (* ?c ?b) ?a)) +(&& (* (* ?c ?b) ?a) (* (* ?c ?b) ?a)) ==> (&& ?c (&& ?b ?a)) +(== (max (min ?c ?b) ?a) (min (max ?c ?a) ?b)) ==> (! (< ?b ?a)) +(!= (|| ?a (|| ?c ?b)) (|| ?a (|| ?c ?b))) ==> (== (! ?a) ?a) +(^ (+ (+ ?a ?c) ?b) (+ (+ ?a ?c) ?b)) ==> (== (! ?a) ?a) +(< (* (* ?a ?c) ?b) (* (* ?a ?c) ?b)) ==> (== (! ?a) ?a) +(< (min ?a (min ?c ?b)) (min ?a (min ?c ?b))) ==> (== (! ?a) ?a) +(== (min (max ?c ?a) ?b) (max (min ?c ?b) ?a)) ==> (<= ?a ?b) +(&& (select ?c ?b ?a) (select ?c ?a ?b)) ==> (|| (&& ?b ?a) (&& ?b ?a)) +(|| (select ?c ?b ?a) (select ?c ?a ?b)) ==> (&& (|| ?b ?a) (|| ?b ?a)) +(^ (select ?c ?b ?a) (select ?c ?a ?b)) ==> (!= (! ?b) (! ?a)) +(^ (select ?c ?b ?a) (select ?c ?a ?b)) ==> (^ (- ?b) (- ?a)) +(^ (select ?c ?a ?b) (select ?c ?b ?a)) ==> (^ (! ?a) (! ?b)) +(&& (select ?c ?b ?a) (select ?c ?a ?b)) ==> (&& (- ?b) (- ?a)) +(|| (select ?c ?a ?b) (select ?c ?b ?a)) ==> (|| (- ?a) (- ?b)) +(^ (select ?c ?b ?a) (select ?c ?a ?b)) ==> (^ ?b ?a) +(|| (select ?c ?b ?a) (select ?c ?a ?b)) ==> (|| ?b ?a) +(&& (select ?c ?a ?b) (select ?c ?b ?a)) ==> (&& ?a ?b) +(+ (select ?c ?a ?b) (select ?c ?b ?a)) ==> (+ ?a ?b) +(* (select ?c ?a ?b) (select ?c ?b ?a)) ==> (* ?a ?b) +(&& (select ?b ?a ?c) ?b) ==> (&& (min ?b ?a) (max ?b ?a)) +(&& (select ?b ?a ?c) ?b) ==> (|| (&& ?b ?a) (&& ?b ?a)) +(|| (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (max ?c ?a)) +(<= ?b (max ?c ?a)) ==> (|| (<= ?b ?c) (<= ?b ?a)) +(<= ?c (min ?b ?a)) ==> (&& (<= ?c ?b) (<= ?c ?a)) +(&& (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (min ?b ?a)) +(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a) +(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a)) +(|| (&& ?c ?a) (&& ?b ?a)) ==> (&& (|| ?c ?b) ?a) +(&& (|| ?c ?b) ?a) ==> (|| (&& ?c ?a) (&& ?b ?a)) +(<= (min ?c ?b) ?a) ==> (<= (min ?c ?b) (min ?b ?a)) +(<= (min ?c ?b) (min ?b ?a)) ==> (<= (min ?c ?b) ?a) +(&& (select ?b ?a ?c) ?b) ==> (&& (- ?b) (- ?a)) +(&& (select ?a ?c ?b) ?a) ==> (&& ?a ?c) +(|| (select ?b ?c ?a) ?b) ==> (|| ?b ?a) +(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a)) +(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a)) +(&& (&& ?c ?b) ?a) ==> (&& ?c (* ?b ?a)) +(&& ?c (* ?b ?a)) ==> (&& (&& ?c ?b) ?a) +(select ?c ?b ?a) ==> (select (- ?c) ?b ?a) +(select (- ?c) ?b ?a) ==> (select ?c ?b ?a) +(select ?b ?a (* ?d (* ?c ?b))) ==> (select ?b ?a 0) +(&& (select ?d ?c (* ?b ?a)) ?a) ==> (&& (select (select ?d ?c ?b) ?a (* ?d ?c)) ?a) +(&& (select (select ?d ?c ?b) ?a (* ?d ?c)) ?a) ==> (&& (select ?d ?c (* ?b ?a)) ?a) +(|| (select ?c ?b ?a) (select ?d ?c (|| ?b ?a))) ==> (|| (select ?d ?c ?b) ?a) +(|| (select ?d ?c ?b) ?a) ==> (|| (select ?c ?b ?a) (select ?d ?c (|| ?b ?a))) +(|| (select (select ?a ?b ?d) ?c (* ?a ?b)) ?a) ==> (|| (&& ?d ?c) ?a) +(* (select ?a ?b (- ?d ?c)) ?a) ==> (* (select ?c ?a ?b) (select ?c ?b ?a)) +(* (select ?b ?a (- ?d ?c)) ?b) ==> (* (min ?b ?a) (max ?b ?a)) +(select ?d ?c (+ ?b ?a)) ==> (select ?d ?c (+ ?b (+ ?d ?a))) +(select ?d ?c (+ ?b (+ ?d ?a))) ==> (select ?d ?c (+ ?b ?a)) +(* (select ?b ?a (+ ?d ?c)) ?b) ==> (* ?b ?a) +(* (select ?a ?d (* ?c ?b)) ?a) ==> (* ?a ?d) +(select ?d ?a (select ?c ?b ?a)) ==> (select (|| ?d (! ?c)) ?a ?b) +(select (|| ?d (! ?c)) ?a ?b) ==> (select ?d ?a (select ?c ?b ?a)) +(select (&& ?d ?c) ?b ?a) ==> (select (* ?d ?c) ?b ?a) +(select (* ?d ?c) ?b ?a) ==> (select (&& ?d ?c) ?b ?a) +(select (!= ?d ?c) ?b ?a) ==> (select (- ?d ?c) ?b ?a) +(select (- ?d ?c) ?b ?a) ==> (select (!= ?d ?c) ?b ?a) diff --git a/jfp/cs2/halide/w-None-A5-derive.json b/jfp/cs2/halide/w-None-A5-derive.json new file mode 100644 index 00000000..b1923b00 --- /dev/null +++ b/jfp/cs2/halide/w-None-A5-derive.json @@ -0,0 +1,492 @@ +{ + "duration": { + "secs": 0, + "nanos": 417586125 + }, + "num_rules": 414, + "num_against": 480, + "can": [ + "(+ ?b (+ ?a 1)) ==> (+ (+ ?a ?b) 1)", + "(+ (+ ?a ?b) 1) ==> (+ ?b (+ ?a 1))", + "(^ ?b (^ ?a ?b)) ==> (select ?a 1 (- ?a))", + "(select ?c ?a ?b) ==> (select (! ?c) ?b ?a)", + "(select (! ?c) ?b ?a) ==> (select ?c ?a ?b)", + "(max ?a (max ?c ?b)) ==> (max ?c (max ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?c ?b))", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(^ ?a (^ ?b ?c)) ==> (^ ?c (^ ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?b ?c))", + "(* ?a (* ?c ?b)) ==> (* ?c (* ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?c ?b))", + "(min ?b (min ?a ?c)) ==> (min ?c (min ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?b (min ?a ?c))", + "(&& ?b (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (&& ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a))", + "(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a)", + "(&& ?b (* ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?b (* ?c ?a))", + "(&& ?c (!= ?b ?a)) ==> (&& ?c (- ?b ?a))", + "(&& ?c (- ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(^ ?c (!= ?b ?a)) ==> (^ ?c (- ?b ?a))", + "(^ ?c (- ?b ?a)) ==> (^ ?c (!= ?b ?a))", + "(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a))", + "(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (|| ?c (- ?b ?a))", + "(|| ?c (- ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(^ ?c (&& ?b ?a)) ==> (^ ?c (* ?b ?a))", + "(^ ?c (* ?b ?a)) ==> (^ ?c (&& ?b ?a))", + "(max ?a (min ?b ?a)) ==> ?a", + "(<= ?b ?a) ==> (<= (max ?a ?b) ?a)", + "(<= (max ?a ?b) ?a) ==> (<= ?b ?a)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(!= (! ?b) (! ?a)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (!= (! ?b) (! ?a))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(max (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (max (! ?b) (! ?a))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a)", + "(select ?a (! ?b) ?a) ==> (&& ?a (! ?b))", + "(! (|| ?b ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(&& ?b (|| ?b ?a)) ==> (|| ?b (&& ?b ?a))", + "(|| ?b (&& ?b ?a)) ==> (&& ?b (|| ?b ?a))", + "(&& ?a ?b) ==> (&& ?b (min ?a 1))", + "(&& ?b (min ?a 1)) ==> (&& ?a ?b)", + "(select ?b ?a (! ?b)) ==> (select ?b ?a 1)", + "(select ?b ?a 1) ==> (select ?b ?a (! ?b))", + "(|| ?a -1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (|| ?a -1)", + "(&& ?a ?a) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (&& ?a ?a)", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?b ?a) ==> ?b", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(- (* ?b ?a)) ==> (* ?b (- ?a))", + "(* ?b (- ?a)) ==> (- (* ?b ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(^ ?b (! ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (^ ?b (! ?a))", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(&& ?a (- ?b)) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a (- ?b))", + "(|| ?a (- ?b)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (- ?b))", + "(== ?a ?b) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?a ?b)", + "(!= ?b ?a) ==> (! (== ?b ?a))", + "(! (== ?b ?a)) ==> (!= ?b ?a)", + "(== ?b ?a) ==> (! (!= ?b ?a))", + "(! (!= ?b ?a)) ==> (== ?b ?a)", + "(< ?a ?b) ==> (! (<= ?b ?a))", + "(! (<= ?b ?a)) ==> (< ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(max ?b ?a) ==> (max ?a ?b)", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(min ?a ?a) ==> ?a", + "?a ==> (min ?a ?a)", + "(^ ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (! (! ?a))", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?a ?a) ==> (<= ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(|| ?a ?a) ==> (|| 0 ?a)", + "(|| 0 ?a) ==> (|| ?a ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(^ ?a ?a) ==> (&& ?a 0)", + "(&& ?a 0) ==> (^ ?a ?a)", + "(^ 0 ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (^ 0 ?a)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= ?a 0) ==> (< ?a 1)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= 1 ?a) ==> (< 0 ?a)" + ], + "cannot": [ + "(!= ?a (min ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (!= ?a (min ?a 0))", + "(min 1 (max ?a 0)) ==> (!= ?a (min ?a 0))", + "(!= ?a (min ?a 0)) ==> (min 1 (max ?a 0))", + "(== (max ?a 0) 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== (max ?a 0) 1)", + "(- ?a (== ?a 1)) ==> (* ?a (!= ?a 1))", + "(* ?a (!= ?a 1)) ==> (- ?a (== ?a 1))", + "(min ?a (== ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (<= ?a 1)) ==> (min ?a (== ?a 1))", + "(min ?a (<= ?a 1)) ==> (* ?a (<= ?a 1))", + "(* ?a (<= ?a 1)) ==> (min ?a (<= ?a 1))", + "(min ?a (< 1 ?a)) ==> (min ?a (!= ?a 1))", + "(min ?a (!= ?a 1)) ==> (min ?a (< 1 ?a))", + "(== ?a (<= 0 ?a)) ==> (&& ?a (== ?a 1))", + "(&& ?a (== ?a 1)) ==> (== ?a (<= 0 ?a))", + "(== ?a (< ?a 0)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< ?a 0))", + "(== ?a (< 1 ?a)) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (== ?a (< 1 ?a))", + "(! (max ?a -1)) ==> (<= (* ?a ?a) 0)", + "(<= (* ?a ?a) 0) ==> (! (max ?a -1))", + "(<= 2 ?a) ==> (&& ?a (< 1 ?a))", + "(&& ?a (< 1 ?a)) ==> (<= 2 ?a)", + "(* ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (<= ?a 0))", + "(* ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (* ?a (< ?a 0))", + "(max ?a (< 0 ?a)) ==> (max ?a 0)", + "(max ?a 0) ==> (max ?a (< 0 ?a))", + "(max ?a (!= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (!= ?a 1))", + "(max ?a (<= ?a 0)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 0))", + "(max ?a (<= ?a 1)) ==> (max ?a 1)", + "(max ?a 1) ==> (max ?a (<= ?a 1))", + "(min ?a (<= ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (<= ?a 0))", + "(min ?a (< ?a 0)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (< ?a 0))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= 0 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= 0 ?a))", + "(* ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< 0 ?a))", + "(* ?a (< -1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (< -1 ?a))", + "(* ?a (<= 0 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (* ?a (<= 0 ?a))", + "(max ?a (== ?a 1)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (== ?a 1))", + "(max ?a (- (! ?a))) ==> (max ?a (< 1 ?a))", + "(max ?a (< 1 ?a)) ==> (max ?a (- (! ?a)))", + "(max ?a (- (! ?a))) ==> (max ?a (< 0 ?a))", + "(max ?a (< 0 ?a)) ==> (max ?a (- (! ?a)))", + "(== ?a (&& ?a ?a)) ==> (^ ?a (+ ?a -1))", + "(^ ?a (+ ?a -1)) ==> (== ?a (&& ?a ?a))", + "(== ?a (< 0 ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (< 0 ?a))", + "(max ?a (&& ?a ?a)) ==> (max ?a (< ?a 0))", + "(max ?a (< ?a 0)) ==> (max ?a (&& ?a ?a))", + "(== ?a (== ?a 1)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (== ?a 1))", + "(! (max ?a (- ?a))) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! (max ?a (- ?a)))", + "(max ?a (< -1 ?a)) ==> (max ?a (! ?a))", + "(max ?a (! ?a)) ==> (max ?a (< -1 ?a))", + "(select ?a (- ?a) 1) ==> (- (! ?a) ?a)", + "(- (! ?a) ?a) ==> (select ?a (- ?a) 1)", + "(max ?a (! ?a)) ==> (max ?a (<= 0 ?a))", + "(max ?a (<= 0 ?a)) ==> (max ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(== ?a (&& ?a ?a)) ==> (<= (* ?a ?a) ?a)", + "(<= (* ?a ?a) ?a) ==> (== ?a (&& ?a ?a))", + "(== ?a (&& ?a ?a)) ==> (== ?a (* ?a ?a))", + "(== ?a (* ?a ?a)) ==> (== ?a (&& ?a ?a))", + "(max (|| ?b ?a) 1) ==> (!= 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (max 1 (min ?b 0))", + "(max (|| ?b ?a) 1) ==> (- (+ ?b 1) ?b)", + "(max (^ ?b ?a) 1) ==> (max (- (! ?b)) 1)", + "(|| ?a (max ?b 1)) ==> (!= (+ ?a ?a) 1)", + "(min (^ ?b ?a) 0) ==> (< 1 (<= ?b 1))", + "(< ?a (+ ?b ?a)) ==> (max 0 (min ?b 1))", + "(< (- ?a ?b) ?a) ==> (max 0 (min ?b 1))", + "(< ?b (+ ?a ?b)) ==> (min 1 (max ?a 0))", + "(min (^ ?b ?a) 0) ==> (< (< ?b 0) 0)", + "(min (^ ?b ?a) 0) ==> (< 1 (< 1 ?b))", + "(< ?b (&& ?b ?a)) ==> (< (min ?b 1) 0)", + "(&& ?b (max ?a 0)) ==> (&& ?b (< 0 ?a))", + "(&& ?b (< 0 ?a)) ==> (&& ?b (max ?a 0))", + "(^ ?b (max ?a 1)) ==> (! (max ?b -1))", + "(<= ?b (max ?a ?b)) ==> (max (- (! ?a)) 1)", + "(min (^ ?b ?a) 0) ==> (select ?b (! ?b) ?b)", + "(min (^ ?b ?a) 0) ==> (< (* ?b ?b) ?b)", + "(< (max ?b ?a) ?b) ==> (== ?a (- 1 ?a))", + "(< (- ?a ?b) ?a) ==> (&& ?b (<= 0 ?b))", + "(< ?b (+ ?b ?a)) ==> (&& ?a (max ?a 0))", + "(<= (+ ?a ?b) ?a) ==> (^ ?b (< -1 ?b))", + "(< (+ ?b ?a) ?a) ==> (&& ?b (min ?b 0))", + "(! (max ?b (! ?a))) ==> (&& ?a (<= ?b 0))", + "(&& ?a (<= ?b 0)) ==> (! (max ?b (! ?a)))", + "(max (|| ?b ?a) 1) ==> (<= ?a (max ?b ?a))", + "(<= ?a (max ?b ?a)) ==> (max (|| ?b ?a) 1)", + "(<= (min ?a ?b) ?a) ==> (!= ?b (<= ?b 0))", + "(<= ?b (max ?b ?a)) ==> (!= ?b (!= ?b 1))", + "(min (|| ?b ?a) 0) ==> (< ?b (min ?b ?a))", + "(< ?b (min ?b ?a)) ==> (min (|| ?b ?a) 0)", + "(< 1 (^ ?a ?b)) ==> (< (* ?a ?a) ?a)", + "(< (|| ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< (^ ?a ?b) 0) ==> (< (* ?a ?a) ?a)", + "(< ?a (min ?a ?b)) ==> (min (* ?a ?a) 0)", + "(< ?a (min ?a ?b)) ==> (< (* ?a ?a) 0)", + "(< (- ?a ?b) ?a) ==> (&& ?b (< -1 ?b))", + "(max (&& ?b ?a) 0) ==> (&& ?a (+ ?b ?b))", + "(&& ?a (+ ?b ?b)) ==> (max (&& ?b ?a) 0)", + "(^ ?b (^ ?a ?b)) ==> (< 0 (* ?a ?a))", + "(|| ?a (* ?a ?b)) ==> (min (* ?a ?a) 1)", + "(^ ?a (^ ?b ?a)) ==> (!= ?b (< ?b 0))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< 0 ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (< -1 ?a))", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(!= ?a (* ?b ?a)) ==> (&& ?a (!= ?b 1))", + "(&& ?a (!= ?b 1)) ==> (!= ?a (* ?b ?a))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< 1 ?b))", + "(== ?a (+ ?b ?a)) ==> (== ?b (< ?b 0))", + "(< (+ ?b ?a) ?a) ==> (^ ?b (< 0 ?b))", + "(|| ?b (< -1 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (< -1 ?a))", + "(< ?b (&& ?b ?a)) ==> (&& ?b (< ?b 0))", + "(< ?b (+ ?b ?a)) ==> (< 0 (+ ?a ?a))", + "(<= (+ ?b ?a) ?b) ==> (<= (+ ?a ?a) 1)", + "(|| ?b (<= ?b ?a)) ==> (|| ?b (<= 0 ?a))", + "(|| ?b (<= 0 ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (< 0 ?a))", + "(|| ?b (< 0 ?a)) ==> (|| ?b (< ?b ?a))", + "(+ ?b (min ?a 0)) ==> (min ?b (+ ?a ?b))", + "(min ?b (+ ?a ?b)) ==> (+ ?b (min ?a 0))", + "(|| ?b (max ?a 0)) ==> (|| ?b (max ?b ?a))", + "(|| ?b (max ?b ?a)) ==> (|| ?b (max ?a 0))", + "(* ?b (+ ?a 1)) ==> (+ ?b (* ?b ?a))", + "(+ ?b (* ?b ?a)) ==> (* ?b (+ ?a 1))", + "(! (select ?a ?b ?a)) ==> (select ?a (! ?b) 1)", + "(select ?a (! ?b) 1) ==> (! (select ?a ?b ?a))", + "(|| ?a (min ?b ?a)) ==> (|| ?a (min ?b 0))", + "(|| ?a (min ?b 0)) ==> (|| ?a (min ?b ?a))", + "(< (<= ?a ?b) ?a) ==> (< (< 0 ?b) ?a)", + "(< (< 0 ?b) ?a) ==> (< (<= ?a ?b) ?a)", + "(max (- ?b ?a) 0) ==> (- (max ?a ?b) ?a)", + "(- (max ?a ?b) ?a) ==> (max (- ?b ?a) 0)", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (- ?c ?a) ?b) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< (- ?c ?a) ?b)", + "(<= ?c (- ?a ?b)) ==> (<= (+ ?c ?b) ?a)", + "(<= (+ ?c ?b) ?a) ==> (<= ?c (- ?a ?b))", + "(< ?b (- ?a ?c)) ==> (< (+ ?c ?b) ?a)", + "(< (+ ?c ?b) ?a) ==> (< ?b (- ?a ?c))", + "(min ?a (max ?b ?a)) ==> ?a", + "(* ?a (|| ?b ?a)) ==> ?a", + "(<= ?a ?b) ==> (<= ?a (min ?b ?a))", + "(<= ?a (min ?b ?a)) ==> (<= ?a ?b)", + "(|| ?a ?b) ==> (|| ?b (- ?b ?a))", + "(|| ?b (- ?b ?a)) ==> (|| ?a ?b)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(<= ?a ?b) ==> (== ?b (max ?b ?a))", + "(== ?b (max ?b ?a)) ==> (<= ?a ?b)", + "(<= ?b (^ ?a ?b)) ==> (<= ?b (! ?a))", + "(<= ?b (! ?a)) ==> (<= ?b (^ ?a ?b))", + "(< ?b (== ?a ?b)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< ?b (== ?a ?b))", + "(- (min ?a (- ?b))) ==> (max ?b (- ?a))", + "(max ?b (- ?a)) ==> (- (min ?a (- ?b)))", + "(min ?a (! ?b)) ==> (min ?a (^ ?b ?a))", + "(min ?a (^ ?b ?a)) ==> (min ?a (! ?b))", + "(! (|| ?a ?b)) ==> (! (select ?b ?b ?a))", + "(! (select ?b ?b ?a)) ==> (! (|| ?a ?b))", + "(* ?b (^ ?a ?b)) ==> (* ?b (! ?a))", + "(* ?b (! ?a)) ==> (* ?b (^ ?a ?b))", + "(|| ?b (== ?a ?b)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (|| ?b (== ?a ?b))", + "(<= (! ?b) (! ?a)) ==> (|| ?b (! ?a))", + "(|| ?b (! ?a)) ==> (<= (! ?b) (! ?a))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(* ?b (&& ?a ?b)) ==> (select ?a ?b ?a)", + "(select ?a ?b ?a) ==> (* ?b (&& ?a ?b))", + "(min ?b (&& ?b ?a)) ==> (min ?b (&& ?a ?a))", + "(min ?b (&& ?a ?a)) ==> (min ?b (&& ?b ?a))", + "(* ?b (== ?b ?a)) ==> (* ?a (== ?b ?a))", + "(* ?a (== ?b ?a)) ==> (* ?b (== ?b ?a))", + "(<= (&& ?b ?a) ?a) ==> (<= (&& ?a ?a) ?a)", + "(- (max ?b ?a) ?b) ==> (- ?a (min ?b ?a))", + "(- ?a (min ?b ?a)) ==> (- (max ?b ?a) ?b)", + "(< ?a (&& ?a ?b)) ==> (< ?b (- ?b ?a))", + "(< ?b (- ?b ?a)) ==> (< ?a (&& ?a ?b))", + "(< ?b (^ ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (^ ?b ?a))", + "(< ?b (|| ?b ?a)) ==> (< ?b (&& ?a ?a))", + "(< ?b (&& ?a ?a)) ==> (< ?b (|| ?b ?a))", + "(min ?a (|| ?b ?a)) ==> (min ?a (&& ?a ?a))", + "(^ ?b (min ?b ?a)) ==> (^ ?a (max ?b ?a))", + "(^ ?a (max ?b ?a)) ==> (^ ?b (min ?b ?a))", + "(|| ?b (< ?a ?b)) ==> (|| ?b (min ?b ?a))", + "(|| ?b (min ?b ?a)) ==> (|| ?b (< ?a ?b))", + "(min ?a (max ?b ?a)) ==> (min ?a (* ?a ?a))", + "(< (+ ?b ?a) ?a) ==> (! (max ?b (! ?b)))", + "(== ?b (- ?b ?a)) ==> (! (min ?a (- ?a)))", + "(< ?b (!= ?a ?b)) ==> (<= ?b (- (! ?a)))", + "(<= ?b (- (! ?a))) ==> (< ?b (!= ?a ?b))", + "(&& ?a (max ?b 1)) ==> (&& ?a ?a)", + "(max (&& ?b ?a) 0) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (max (&& ?b ?a) 0)", + "(&& ?b ?a) ==> (min (&& ?b ?a) 1)", + "(min (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (== (&& ?b ?a) 1)", + "(== (&& ?b ?a) 1) ==> (&& ?b ?a)", + "(select ?a (! ?b) 1) ==> (! (&& ?b ?a))", + "(! (&& ?b ?a)) ==> (select ?a (! ?b) 1)", + "(! (select ?a 1 ?b)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (! (select ?a 1 ?b))", + "(! (|| ?b ?a)) ==> (- 1 (|| ?b ?a))", + "(- 1 (|| ?b ?a)) ==> (! (|| ?b ?a))", + "(< ?b (min ?b ?a)) ==> (! (min ?b -1))", + "(< ?b (min ?a ?b)) ==> (== (! ?a) -1)", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= (<= 0 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (<= 0 ?b) ?a)", + "(< ?b (< ?a ?b)) ==> (< ?b (< ?a 0))", + "(< ?b (< ?a 0)) ==> (< ?b (< ?a ?b))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(<= (<= ?b ?a) ?a) ==> (<= (<= ?b 0) ?a)", + "(<= (<= ?b 0) ?a) ==> (<= (<= ?b ?a) ?a)", + "(|| ?a (<= ?b 0)) ==> (|| ?a (<= ?b ?a))", + "(|| ?a (<= ?b ?a)) ==> (|| ?a (<= ?b 0))", + "(<= ?a (!= ?b 1)) ==> (<= ?a (!= ?b ?a))", + "(<= ?a (!= ?b ?a)) ==> (<= ?a (!= ?b 1))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(<= (< -1 ?b) ?a) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (<= (< -1 ?b) ?a)", + "(< (<= ?b 0) ?a) ==> (< (< ?b ?a) ?a)", + "(< (< ?b ?a) ?a) ==> (< (<= ?b 0) ?a)", + "(max (- ?a) 0) ==> (- (min ?a 0))", + "(- (min ?a 0)) ==> (max (- ?a) 0)", + "(! (min ?a 0)) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (! (min ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(! (max ?a 0)) ==> (<= ?a (! ?a))", + "(<= ?a (! ?a)) ==> (! (max ?a 0))", + "(!= ?a (! ?a)) ==> (max (! ?a) 1)", + "(max (! ?a) 1) ==> (!= ?a (! ?a))", + "(max (! ?a) 1) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (max (! ?a) 1)", + "(! (max ?a 1)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (! (max ?a 1))", + "(min (! ?a) 0) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (min (! ?a) 0)", + "(== ?a (! ?a)) ==> (< 1 (! ?a))", + "(< 1 (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (< (! ?a) 0)", + "(< (! ?a) 0) ==> (== ?a (! ?a))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(== (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (== (! ?a) 1)", + "(! (min ?a 1)) ==> (! ?a)", + "(! ?a) ==> (! (min ?a 1))", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(< 0 (! ?a)) ==> (! ?a)", + "(! ?a) ==> (< 0 (! ?a))", + "(! ?a) ==> (min (! ?a) 1)", + "(min (! ?a) 1) ==> (! ?a)", + "(&& ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (&& ?a (! ?a))", + "(* ?a (! ?a)) ==> (== ?a (! ?a))", + "(== ?a (! ?a)) ==> (* ?a (! ?a))", + "(< (! ?a) ?a) ==> (< (- ?a) ?a)", + "(< (- ?a) ?a) ==> (< (! ?a) ?a)", + "(< (! ?a) ?a) ==> (<= (! ?a) ?a)", + "(<= (! ?a) ?a) ==> (< (! ?a) ?a)", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- ?a (- ?b)) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (- ?a (- ?b))", + "(^ ?a (- ?b)) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a (- ?b))", + "(<= ?a ?b) ==> (! (< ?b ?a))", + "(! (< ?b ?a)) ==> (<= ?a ?b)", + "(< (- ?a) ?b) ==> (< (- ?b) ?a)", + "(< (- ?b) ?a) ==> (< (- ?a) ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(- (- ?a)) ==> ?a", + "?a ==> (- (- ?a))", + "(max ?a ?a) ==> ?a", + "?a ==> (max ?a ?a)", + "(! (- ?a)) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(^ ?a ?a) ==> (< ?a ?a)", + "(< ?a ?a) ==> (^ ?a ?a)", + "(^ ?a ?a) ==> (- ?a ?a)", + "(- ?a ?a) ==> (^ ?a ?a)", + "(<= ?a ?a) ==> 1", + "(- ?a 0) ==> ?a", + "?a ==> (- ?a 0)", + "(+ 0 ?a) ==> ?a", + "?a ==> (+ 0 ?a)", + "(* ?a 1) ==> ?a", + "?a ==> (* ?a 1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(== 0 ?a) ==> (! ?a)", + "(! ?a) ==> (== 0 ?a)", + "(^ ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (^ ?a ?a)", + "(! (! ?a)) ==> (!= 0 ?a)", + "(!= 0 ?a) ==> (! (! ?a))", + "(|| ?a 1) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (|| ?a 1)" + ] +} diff --git a/jfp/cs2/halide/w-None-Enumo-derive.json b/jfp/cs2/halide/w-None-Enumo-derive.json new file mode 100644 index 00000000..cd7d8296 --- /dev/null +++ b/jfp/cs2/halide/w-None-Enumo-derive.json @@ -0,0 +1,852 @@ +{ + "duration": { + "secs": 2, + "nanos": 922167 + }, + "num_rules": 414, + "num_against": 840, + "can": [ + "(&& (^ ?b ?a) 1) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (&& (^ ?b ?a) 1)", + "(&& ?b (! ?a)) ==> (^ ?a (|| ?a ?b))", + "(^ ?a (|| ?a ?b)) ==> (&& ?b (! ?a))", + "(&& ?b (! ?a)) ==> (^ ?b (&& ?a ?b))", + "(^ ?b (&& ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (! ?a)) ==> (! (&& ?a (! ?b)))", + "(! (&& ?a (! ?b))) ==> (|| ?b (! ?a))", + "(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a))", + "(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a))", + "(! (&& ?b ?a)) ==> (|| (! ?b) (! ?a))", + "(|| (! ?b) (! ?a)) ==> (! (&& ?b ?a))", + "(&& ?b (|| ?b ?a)) ==> (&& ?b ?b)", + "(|| ?a (&& ?a ?b)) ==> (&& ?a ?a)", + "(|| ?a (|| ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a (|| ?b ?a))", + "(&& ?b (&& ?a ?a)) ==> (&& ?a ?b)", + "(&& ?a ?b) ==> (&& ?b (&& ?a ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& ?a (&& ?c ?b))", + "(&& ?a (&& ?c ?b)) ==> (&& ?c (&& ?b ?a))", + "(^ ?c (^ ?b ?a)) ==> (^ ?a (^ ?c ?b))", + "(^ ?a (^ ?c ?b)) ==> (^ ?c (^ ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| ?b (|| ?c ?a))", + "(|| ?b (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(^ ?a (! ?a)) ==> (|| ?a (! ?a))", + "(|| ?a (! ?a)) ==> (^ ?a (! ?a))", + "(! (^ ?b ?a)) ==> (^ ?a (! ?b))", + "(^ ?a (! ?b)) ==> (! (^ ?b ?a))", + "(&& ?a ?b) ==> (&& ?b ?a)", + "(&& ?b ?a) ==> (&& ?a ?b)", + "(^ ?a ?b) ==> (^ ?b ?a)", + "(^ ?b ?a) ==> (^ ?a ?b)", + "(|| ?a ?b) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?a ?b)", + "(|| ?a ?a) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (! (! ?a))", + "(! (! ?a)) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> 0", + "(! ?a) ==> (^ ?a 1)", + "(^ ?a 1) ==> (! ?a)", + "(&& ?a 1) ==> (&& ?a ?a)", + "(&& ?a ?a) ==> (&& ?a 1)", + "(|| ?a ?a) ==> (|| ?a 0)", + "(|| ?a 0) ==> (|| ?a ?a)", + "(|| ?a ?a) ==> (^ ?a 0)", + "(^ ?a 0) ==> (|| ?a ?a)", + "(^ ?a ?a) ==> (&& 0 ?a)", + "(&& 0 ?a) ==> (^ ?a ?a)", + "(|| ?a 1) ==> 1", + "(min -1 (max ?a 1)) ==> (min -1 (max ?a 0))", + "(min -1 (max ?a 0)) ==> (min -1 (max ?a 1))", + "(min -1 (max ?a 0)) ==> -1", + "(min 0 (max ?a 1)) ==> 0", + "(* ?b (+ ?a ?a)) ==> (* ?a (+ ?b ?b))", + "(* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a))", + "(max ?a (min ?b ?a)) ==> ?a", + "(+ ?c (- ?b ?a)) ==> (- (+ ?b ?c) ?a)", + "(- (+ ?b ?c) ?a) ==> (+ ?c (- ?b ?a))", + "(- (- ?c ?b) ?a) ==> (- (- ?c ?a) ?b)", + "(- (- ?c ?a) ?b) ==> (- (- ?c ?b) ?a)", + "(+ ?c (+ ?b ?a)) ==> (+ ?b (+ ?c ?a))", + "(+ ?b (+ ?c ?a)) ==> (+ ?c (+ ?b ?a))", + "(max ?c (max ?b ?a)) ==> (max ?a (max ?b ?c))", + "(max ?a (max ?b ?c)) ==> (max ?c (max ?b ?a))", + "(min ?c (min ?b ?a)) ==> (min ?a (min ?b ?c))", + "(min ?a (min ?b ?c)) ==> (min ?c (min ?b ?a))", + "(* ?c (* ?b ?a)) ==> (* ?a (* ?b ?c))", + "(* ?a (* ?b ?c)) ==> (* ?c (* ?b ?a))", + "(+ -1 ?a) ==> (- ?a 1)", + "(- ?a 1) ==> (+ -1 ?a)", + "?a ==> (min ?a ?a)", + "(min ?a ?a) ==> ?a", + "(max ?b ?a) ==> (max ?a ?b)", + "(max ?a ?b) ==> (max ?b ?a)", + "(min ?b ?a) ==> (min ?a ?b)", + "(min ?a ?b) ==> (min ?b ?a)", + "(== (== ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (== (== ?b ?a) 0)", + "(!= (!= ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (!= (!= ?b ?a) 1)", + "(!= (!= ?b ?a) 0) ==> (!= ?b ?a)", + "(!= ?b ?a) ==> (!= (!= ?b ?a) 0)", + "(select (- ?c) ?b ?a) ==> (select ?c ?b ?a)", + "(select ?c ?b ?a) ==> (select (- ?c) ?b ?a)", + "(== ?a (- ?a)) ==> (select ?a 0 1)", + "(select ?a 0 1) ==> (== ?a (- ?a))", + "(!= ?a 0) ==> (!= ?a (- ?a))", + "(!= ?a (- ?a)) ==> (!= ?a 0)", + "(== ?a (- ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (- ?a))", + "(select 0 ?b ?a) ==> ?a", + "(select 1 ?a ?b) ==> ?a", + "(select -1 ?b ?a) ==> ?b", + "(!= ?b (- ?a)) ==> (!= ?a (- ?b))", + "(!= ?a (- ?b)) ==> (!= ?b (- ?a))", + "(== ?b (- ?a)) ==> (== ?a (- ?b))", + "(== ?a (- ?b)) ==> (== ?b (- ?a))", + "(select ?b ?a ?a) ==> ?a", + "(<= 1 ?a) ==> (< 0 ?a)", + "(< 0 ?a) ==> (<= 1 ?a)", + "(<= ?a 0) ==> (< ?a 1)", + "(< ?a 1) ==> (<= ?a 0)", + "(<= 0 ?a) ==> (< -1 ?a)", + "(< -1 ?a) ==> (<= 0 ?a)", + "(!= ?a ?a) ==> 0", + "(== ?a ?a) ==> (<= ?a ?a)", + "(<= ?a ?a) ==> (== ?a ?a)", + "(== ?b ?a) ==> (== ?a ?b)", + "(== ?a ?b) ==> (== ?b ?a)", + "(!= ?b ?a) ==> (!= ?a ?b)", + "(!= ?a ?b) ==> (!= ?b ?a)", + "(! (&& ?b ?a)) ==> (! (* ?b ?a))", + "(! (* ?b ?a)) ==> (! (&& ?b ?a))", + "(== ?b ?a) ==> (! (- ?b ?a))", + "(! (- ?b ?a)) ==> (== ?b ?a)", + "(* (! ?b) (! ?a)) ==> (min (! ?b) (! ?a))", + "(min (! ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< ?c (min ?b ?a)) ==> (* (< ?c ?b) (< ?c ?a))", + "(* (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(max (< ?b ?c) (< ?b ?a)) ==> (< ?b (max ?c ?a))", + "(< ?b (max ?c ?a)) ==> (max (< ?b ?c) (< ?b ?a))", + "(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a))", + "(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a)", + "(< (min ?c ?b) (min ?b ?a)) ==> (< ?c (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (< (min ?c ?b) (min ?b ?a))", + "(< ?c (min ?b ?a)) ==> (min (< ?c ?b) (< ?c ?a))", + "(min (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a))", + "(< (max ?b ?c) (min ?b ?a)) ==> (< ?b ?b)", + "(max (max ?b ?a) (min ?a ?c)) ==> (max ?b ?a)", + "(min (! ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (min (! ?c) (< ?b ?a))", + "(< ?c (+ ?b ?a)) ==> (< (- ?c ?b) ?a)", + "(< (- ?c ?b) ?a) ==> (< ?c (+ ?b ?a))", + "(== (&& ?b ?b) (|| ?b ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?b) (|| ?b ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (== (&& ?b ?a) (&& ?a ?a))", + "(== (&& ?b ?a) (&& ?a ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(== (&& ?b ?a) (|| ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (== (&& ?b ?a) (|| ?b ?a))", + "(&& ?b (< ?b ?a)) ==> (&& (< ?b ?a) (min ?b ?a))", + "(&& (< ?b ?a) (min ?b ?a)) ==> (&& ?b (< ?b ?a))", + "(&& ?b (<= ?b ?a)) ==> (&& (<= ?b ?a) (min ?b ?a))", + "(&& (<= ?b ?a) (min ?b ?a)) ==> (&& ?b (<= ?b ?a))", + "(|| (<= ?b ?a) (min ?b ?a)) ==> (|| (<= ?b ?a) ?a)", + "(|| (<= ?b ?a) ?a) ==> (|| (<= ?b ?a) (min ?b ?a))", + "(|| (< ?b ?a) (min ?b ?a)) ==> (|| (< ?b ?a) ?a)", + "(|| (< ?b ?a) ?a) ==> (|| (< ?b ?a) (min ?b ?a))", + "(|| ?b (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (|| ?b (! ?a))", + "(|| (! ?b) (! ?a)) ==> (max (! ?b) (! ?a))", + "(max (! ?b) (! ?a)) ==> (|| (! ?b) (! ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (max ?b ?a) (min ?b ?a))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (min (&& ?b ?b) (|| ?c ?a))", + "(min (&& ?b ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(== (&& ?c ?b) (!= ?b ?a)) ==> (!= (&& ?c ?b) (== ?b ?a))", + "(!= (&& ?c ?b) (== ?b ?a)) ==> (== (&& ?c ?b) (!= ?b ?a))", + "(== (|| ?c ?b) (== ?b ?a)) ==> (!= (|| ?c ?b) (!= ?b ?a))", + "(!= (|| ?c ?b) (!= ?b ?a)) ==> (== (|| ?c ?b) (== ?b ?a))", + "(!= (== ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (< ?b ?a))", + "(== (!= ?b ?c) (< ?b ?a)) ==> (!= (== ?b ?c) (< ?b ?a))", + "(== (< ?c ?b) (== ?b ?a)) ==> (!= (< ?c ?b) (!= ?b ?a))", + "(!= (< ?c ?b) (!= ?b ?a)) ==> (== (< ?c ?b) (== ?b ?a))", + "(!= (== ?b ?c) (!= ?b ?a)) ==> (== (!= ?b ?c) (!= ?b ?a))", + "(== (!= ?b ?c) (!= ?b ?a)) ==> (!= (== ?b ?c) (!= ?b ?a))", + "(!= (&& ?c ?c) (< ?b ?a)) ==> (== (! ?c) (< ?b ?a))", + "(== (! ?c) (< ?b ?a)) ==> (!= (&& ?c ?c) (< ?b ?a))", + "(== (!= ?c ?b) (&& ?a ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (!= ?c ?b) (&& ?a ?a))", + "(!= (&& ?c ?c) (&& ?b ?a)) ==> (== (! ?c) (&& ?b ?a))", + "(== (! ?c) (&& ?b ?a)) ==> (!= (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (< ?b ?a)) ==> (max (&& ?c ?c) (< ?b ?a))", + "(max (&& ?c ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (max (&& ?c ?c) (!= ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (|| (<= ?c ?b) (<= ?c ?a))", + "(|| (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(&& (< ?c ?b) ?a) ==> (min (< ?c ?b) (&& ?a ?a))", + "(min (< ?c ?b) (&& ?a ?a)) ==> (&& (< ?c ?b) ?a)", + "(|| ?c (&& ?b ?a)) ==> (max (&& ?c ?c) (&& ?b ?a))", + "(max (&& ?c ?c) (&& ?b ?a)) ==> (|| ?c (&& ?b ?a))", + "(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a))", + "(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a))", + "(&& (!= ?c ?b) ?a) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (&& (!= ?c ?b) ?a)", + "(&& ?c (|| ?b ?a)) ==> (|| (&& ?c ?b) (&& ?c ?a))", + "(|| (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (|| ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (|| ?c ?b) (|| ?c ?a))", + "(max (|| ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (|| ?b (&& ?c ?a))", + "(|| ?b (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?c ?a))", + "(min (&& ?c ?b) (&& ?c ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (min (&& ?c ?b) (&& ?a ?a))", + "(min (&& ?c ?b) (&& ?a ?a)) ==> (&& ?c (&& ?b ?a))", + "(max (|| ?b ?c) (&& ?b ?a)) ==> (|| ?b ?c)", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| ?c ?b)", + "(|| (&& ?c ?b) (! ?a)) ==> (max (&& ?c ?b) (! ?a))", + "(max (&& ?c ?b) (! ?a)) ==> (|| (&& ?c ?b) (! ?a))", + "(&& (< ?c ?b) (! ?a)) ==> (min (< ?c ?b) (! ?a))", + "(min (< ?c ?b) (! ?a)) ==> (&& (< ?c ?b) (! ?a))", + "(|| (!= ?c ?b) (! ?a)) ==> (max (!= ?c ?b) (! ?a))", + "(max (!= ?c ?b) (! ?a)) ==> (|| (!= ?c ?b) (! ?a))", + "(&& (!= ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (&& (!= ?c ?b) (! ?a))", + "(|| (< ?c ?b) (! ?a)) ==> (max (< ?c ?b) (! ?a))", + "(max (< ?c ?b) (! ?a)) ==> (|| (< ?c ?b) (! ?a))", + "(&& (&& ?c ?b) (! ?a)) ==> (min (&& ?c ?b) (! ?a))", + "(min (&& ?c ?b) (! ?a)) ==> (&& (&& ?c ?b) (! ?a))", + "(== (== ?c ?b) (! ?a)) ==> (!= (!= ?c ?b) (! ?a))", + "(!= (!= ?c ?b) (! ?a)) ==> (== (== ?c ?b) (! ?a))", + "(|| (! ?c) (|| ?b ?a)) ==> (max (! ?c) (|| ?b ?a))", + "(max (! ?c) (|| ?b ?a)) ==> (|| (! ?c) (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (&& (&& ?c ?b) (- ?a))", + "(&& (&& ?c ?b) (- ?a)) ==> (&& ?c (&& ?b ?a))", + "(* ?c (select ?b ?a ?a)) ==> (* ?c ?a)", + "(- ?c (select ?b ?a ?a)) ==> (- ?c ?a)", + "(+ ?c (select ?b ?a ?a)) ==> (+ ?a ?c)", + "(select ?b (+ ?d ?c) (+ ?b ?a)) ==> (select ?b (+ ?d ?c) (- ?a ?b))", + "(select ?b (+ ?d ?c) (- ?a ?b)) ==> (select ?b (+ ?d ?c) (+ ?b ?a))", + "(+ ?d (select ?c ?b ?a)) ==> (select ?c (+ ?d ?b) (+ ?d ?a))", + "(select ?c (+ ?d ?b) (+ ?d ?a)) ==> (+ ?d (select ?c ?b ?a))", + "(max ?a (select ?c ?b ?b)) ==> (max ?b ?a)", + "(min ?c (select ?b ?a ?a)) ==> (min ?a ?c)" + ], + "cannot": [ + "(&& ?b (! ?a)) ==> (&& ?b (^ ?a ?b))", + "(&& ?b (^ ?a ?b)) ==> (&& ?b (! ?a))", + "(|| ?b (^ ?b ?a)) ==> (|| ?b ?a)", + "(|| ?b ?a) ==> (|| ?b (^ ?b ?a))", + "(&& ?a (! ?a)) ==> 0", + "(! (&& ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (&& ?a ?a))", + "(min 0 (max ?a -1)) ==> (max -1 (min ?a 0))", + "(max -1 (min ?a 0)) ==> (min 0 (max ?a -1))", + "(max -1 (min ?a 1)) ==> (min 1 (max ?a -1))", + "(min 1 (max ?a -1)) ==> (max -1 (min ?a 1))", + "(min 1 (max ?a 0)) ==> (max 0 (min ?a 1))", + "(max 0 (min ?a 1)) ==> (min 1 (max ?a 0))", + "(max 1 (min ?a -1)) ==> 1", + "(max (min ?a 0) 1) ==> 1", + "(max 0 (min ?a -1)) ==> 0", + "(min (* ?a ?a) -1) ==> -1", + "(max ?a (* ?a ?a)) ==> (max (* ?a ?a) 0)", + "(max (* ?a ?a) 0) ==> (max ?a (* ?a ?a))", + "(max (* ?a ?a) 0) ==> (* ?a ?a)", + "(* ?a ?a) ==> (max (* ?a ?a) 0)", + "(max ?b (- ?b ?a)) ==> (- ?b (min ?a 0))", + "(- ?b (min ?a 0)) ==> (max ?b (- ?b ?a))", + "(- ?b (max ?a 0)) ==> (min ?b (- ?b ?a))", + "(min ?b (- ?b ?a)) ==> (- ?b (max ?a 0))", + "(max ?a (+ ?b ?a)) ==> (+ ?a (max ?b 0))", + "(+ ?a (max ?b 0)) ==> (max ?a (+ ?b ?a))", + "(- (min ?a ?b) ?a) ==> (min (- ?b ?a) 0)", + "(min (- ?b ?a) 0) ==> (- (min ?a ?b) ?a)", + "(+ ?a (* ?b ?a)) ==> (* ?a (+ ?b 1))", + "(* ?a (+ ?b 1)) ==> (+ ?a (* ?b ?a))", + "(- ?a (* ?b ?a)) ==> (* ?a (- 1 ?b))", + "(* ?a (- 1 ?b)) ==> (- ?a (* ?b ?a))", + "(min ?a (+ ?b ?a)) ==> (+ ?a (min ?b 0))", + "(+ ?a (min ?b 0)) ==> (min ?a (+ ?b ?a))", + "(max ?a (min ?b ?a)) ==> (min ?a (* ?a ?a))", + "(- ?a (max ?b ?a)) ==> (- (min ?b ?a) ?b)", + "(- (min ?b ?a) ?b) ==> (- ?a (max ?b ?a))", + "(min ?b (- ?a)) ==> (- (max ?a (- ?b)))", + "(- (max ?a (- ?b))) ==> (min ?b (- ?a))", + "(min ?a (max ?b ?a)) ==> ?a", + "(- (min ?a 1)) ==> (max (- ?a) -1)", + "(max (- ?a) -1) ==> (- (min ?a 1))", + "(min (- ?a) 0) ==> (- (max ?a 0))", + "(- (max ?a 0)) ==> (min (- ?a) 0)", + "(- (max ?a 1)) ==> (min (- ?a) -1)", + "(min (- ?a) -1) ==> (- (max ?a 1))", + "(* ?b (- ?a)) ==> (- (* ?a ?b))", + "(- (* ?a ?b)) ==> (* ?b (- ?a))", + "(+ ?b (- ?a)) ==> (- ?b ?a)", + "(- ?b ?a) ==> (+ ?b (- ?a))", + "(- ?b ?a) ==> (- (- ?a ?b))", + "(- (- ?a ?b)) ==> (- ?b ?a)", + "(- ?a -1) ==> (+ ?a 1)", + "(+ ?a 1) ==> (- ?a -1)", + "(- ?a ?a) ==> (* 0 ?a)", + "(* 0 ?a) ==> (- ?a ?a)", + "(* -1 ?a) ==> (- ?a)", + "(- ?a) ==> (* -1 ?a)", + "(- ?a) ==> (- 0 ?a)", + "(- 0 ?a) ==> (- ?a)", + "?a ==> (- ?a 0)", + "(- ?a 0) ==> ?a", + "?a ==> (* 1 ?a)", + "(* 1 ?a) ==> ?a", + "?a ==> (+ ?a 0)", + "(+ ?a 0) ==> ?a", + "(- ?a ?a) ==> 0", + "?a ==> (- (- ?a))", + "(- (- ?a)) ==> ?a", + "?a ==> (max ?a ?a)", + "(max ?a ?a) ==> ?a", + "(+ ?b ?a) ==> (+ ?a ?b)", + "(+ ?a ?b) ==> (+ ?b ?a)", + "(* ?b ?a) ==> (* ?a ?b)", + "(* ?a ?b) ==> (* ?b ?a)", + "(== -1 (<= 1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= 1 ?a))", + "(== -1 (< -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< -1 ?a))", + "(== -1 (< ?a -1)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (< ?a -1))", + "(== -1 (<= -1 ?a)) ==> (select (- ?a) 0 ?a)", + "(select (- ?a) 0 ?a) ==> (== -1 (<= -1 ?a))", + "(!= ?a (== ?a 1)) ==> (!= ?a (!= ?a 0))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (== ?a 1))", + "(!= ?a (!= ?a 0)) ==> (!= ?a (<= 1 ?a))", + "(!= ?a (<= 1 ?a)) ==> (!= ?a (!= ?a 0))", + "(== ?a (< ?a 0)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a 0))", + "(== ?a 0) ==> (== ?a (< 1 ?a))", + "(== ?a (< 1 ?a)) ==> (== ?a 0)", + "(== ?a 0) ==> (== ?a (< ?a -1))", + "(== ?a (< ?a -1)) ==> (== ?a 0)", + "(== ?a 1) ==> (== ?a (<= ?a 1))", + "(== ?a (<= ?a 1)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (< -1 ?a))", + "(== ?a (< -1 ?a)) ==> (== ?a 1)", + "(== ?a 1) ==> (== ?a (<= -1 ?a))", + "(== ?a (<= -1 ?a)) ==> (== ?a 1)", + "(== ?a 0) ==> (== ?a (== ?a -1))", + "(== ?a (== ?a -1)) ==> (== ?a 0)", + "(!= ?a (!= ?a -1)) ==> (!= ?a 1)", + "(!= ?a 1) ==> (!= ?a (!= ?a -1))", + "(< 1 (< ?a ?b)) ==> (select (- ?a) 0 ?a)", + "(- (select ?b 0 ?a)) ==> (select ?b 0 (- ?a))", + "(select ?b 0 (- ?a)) ==> (- (select ?b 0 ?a))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (< ?a 1))", + "(- (select ?b 1 ?a)) ==> (select ?b -1 (- ?a))", + "(select ?b -1 (- ?a)) ==> (- (select ?b 1 ?a))", + "(- (select ?b ?a 1)) ==> (select ?b (- ?a) -1)", + "(select ?b (- ?a) -1) ==> (- (select ?b ?a 1))", + "(== (== ?a ?b) -1) ==> (== ?a (== ?a 0))", + "(!= (!= ?a ?b) -1) ==> (!= ?a (!= ?a 1))", + "(<= -1 (!= ?b ?a)) ==> 1", + "(!= (< ?b ?a) -1) ==> 1", + "(!= (!= ?b ?a) -1) ==> 1", + "(<= (<= ?b ?a) 1) ==> 1", + "(< ?b (<= ?b ?a)) ==> (< ?b (< -1 ?a))", + "(< ?b (< -1 ?a)) ==> (< ?b (<= ?b ?a))", + "(<= ?b (!= ?b ?a)) ==> (<= ?b (!= ?a 1))", + "(<= ?b (!= ?a 1)) ==> (<= ?b (!= ?b ?a))", + "(< (== ?b 1) ?a) ==> (< (== ?b ?a) ?a)", + "(< (== ?b ?a) ?a) ==> (< (== ?b 1) ?a)", + "(< ?a (<= ?b ?a)) ==> (< ?a (< ?b 1))", + "(< ?a (< ?b 1)) ==> (< ?a (<= ?b ?a))", + "(< ?b (!= ?a 0)) ==> (< ?b (!= ?a ?b))", + "(< ?b (!= ?a ?b)) ==> (< ?b (!= ?a 0))", + "(< ?a (== ?b ?a)) ==> (< ?a (== ?b 0))", + "(< ?a (== ?b 0)) ==> (< ?a (== ?b ?a))", + "(< (< 1 ?b) ?a) ==> (< (< ?a ?b) ?a)", + "(< (< ?a ?b) ?a) ==> (< (< 1 ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (< ?a (< ?b 0))", + "(< ?a (< ?b 0)) ==> (< ?a (< ?b ?a))", + "(< (< ?b ?a) ?a) ==> (< (< ?b 1) ?a)", + "(< (< ?b 1) ?a) ==> (< (< ?b ?a) ?a)", + "(< ?b (< 0 ?a)) ==> (< ?b (< ?b ?a))", + "(< ?b (< ?b ?a)) ==> (< ?b (< 0 ?a))", + "(<= ?b (<= 1 ?a)) ==> (<= ?b (<= ?b ?a))", + "(<= ?b (<= ?b ?a)) ==> (<= ?b (<= 1 ?a))", + "(<= ?a (<= ?b ?a)) ==> (<= ?a (<= ?b 1))", + "(<= ?a (<= ?b 1)) ==> (<= ?a (<= ?b ?a))", + "(== (< ?b ?a) 0) ==> (<= ?a ?b)", + "(<= ?a ?b) ==> (== (< ?b ?a) 0)", + "(< 0 (== ?b ?a)) ==> (== ?b ?a)", + "(== ?b ?a) ==> (< 0 (== ?b ?a))", + "(== (<= ?b ?a) 1) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (== (<= ?b ?a) 1)", + "(!= (<= ?b ?a) 0) ==> (<= ?b ?a)", + "(<= ?b ?a) ==> (!= (<= ?b ?a) 0)", + "(<= ?b ?a) ==> (< (< ?a ?b) 1)", + "(< (< ?a ?b) 1) ==> (<= ?b ?a)", + "(< ?b ?a) ==> (< (<= ?a ?b) 1)", + "(< (<= ?a ?b) 1) ==> (< ?b ?a)", + "(< 0 (< ?b ?a)) ==> (< ?b ?a)", + "(< ?b ?a) ==> (< 0 (< ?b ?a))", + "(== (== ?b ?a) 1) ==> (== ?b ?a)", + "(== ?b ?a) ==> (== (== ?b ?a) 1)", + "(- (select ?a ?b ?a)) ==> (select ?a (- ?b) ?a)", + "(select ?a (- ?b) ?a) ==> (- (select ?a ?b ?a))", + "(- (== ?a 0)) ==> (select ?a 0 -1)", + "(select ?a 0 -1) ==> (- (== ?a 0))", + "(- (!= ?a 0)) ==> (select ?a -1 ?a)", + "(select ?a -1 ?a) ==> (- (!= ?a 0))", + "(!= ?a (- ?a)) ==> (select ?a 1 ?a)", + "(select ?a 1 ?a) ==> (!= ?a (- ?a))", + "(<= 0 ?a) ==> (<= (- ?a) ?a)", + "(<= (- ?a) ?a) ==> (<= 0 ?a)", + "(< ?a (- ?a)) ==> (< ?a 0)", + "(< ?a 0) ==> (< ?a (- ?a))", + "(select ?a ?b ?a) ==> (select ?a ?b 0)", + "(select ?a ?b 0) ==> (select ?a ?b ?a)", + "(< ?b (- ?a)) ==> (< ?a (- ?b))", + "(< ?a (- ?b)) ==> (< ?b (- ?a))", + "(<= ?b (- ?a)) ==> (<= ?a (- ?b))", + "(<= ?a (- ?b)) ==> (<= ?b (- ?a))", + "(< ?a 0) ==> (<= ?a -1)", + "(<= ?a -1) ==> (< ?a 0)", + "(<= ?a ?a) ==> 1", + "(< ?a ?a) ==> (!= ?a ?a)", + "(!= ?a ?a) ==> (< ?a ?a)", + "(! (min ?a 0)) ==> (< -1 ?a)", + "(< -1 ?a) ==> (! (min ?a 0))", + "(! (max ?a 0)) ==> (< ?a 1)", + "(< ?a 1) ==> (! (max ?a 0))", + "(! (max ?a 1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (max ?a 1))", + "(! (min ?a -1)) ==> (* ?a (! ?a))", + "(* ?a (! ?a)) ==> (! (min ?a -1))", + "(+ ?a (! ?a)) ==> (select ?a ?a 1)", + "(select ?a ?a 1) ==> (+ ?a (! ?a))", + "(- ?a (! ?a)) ==> (select ?a ?a -1)", + "(select ?a ?a -1) ==> (- ?a (! ?a))", + "(&& ?a ?a) ==> (- 1 (! ?a))", + "(- 1 (! ?a)) ==> (&& ?a ?a)", + "(min ?a (! ?a)) ==> (min ?a 0)", + "(min ?a 0) ==> (min ?a (! ?a))", + "(min (! ?a) 1) ==> (! ?a)", + "(! ?a) ==> (min (! ?a) 1)", + "(max (! ?a) 0) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) 0)", + "(max (! ?a) -1) ==> (! ?a)", + "(! ?a) ==> (max (! ?a) -1)", + "(! ?a) ==> (! (max ?a -1))", + "(! (max ?a -1)) ==> (! ?a)", + "(* ?a (! ?a)) ==> (^ ?a (- ?a))", + "(^ ?a (- ?a)) ==> (* ?a (! ?a))", + "(! (+ ?a ?a)) ==> (! ?a)", + "(! ?a) ==> (! (+ ?a ?a))", + "(select ?b 0 ?a) ==> (* ?a (! ?b))", + "(* ?a (! ?b)) ==> (select ?b 0 ?a)", + "(^ ?b (- ?a)) ==> (^ ?a ?b)", + "(^ ?a ?b) ==> (^ ?b (- ?a))", + "(! ?a) ==> (== ?a 0)", + "(== ?a 0) ==> (! ?a)", + "(! ?a) ==> (^ ?a -1)", + "(^ ?a -1) ==> (! ?a)", + "(! ?a) ==> (! (- ?a))", + "(! (- ?a)) ==> (! ?a)", + "(max (* ?a ?a) (! ?a)) ==> (+ (* ?a ?a) (! ?a))", + "(+ (* ?a ?a) (! ?a)) ==> (max (* ?a ?a) (! ?a))", + "(< (- ?b ?a) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?a ?a))", + "(< (max ?b ?a) (+ ?a ?a)) ==> (< (- ?b ?a) (min ?b ?a))", + "(< (+ ?b ?a) (max ?b ?a)) ==> (< (min ?b ?a) (< ?b ?b))", + "(< (min ?b ?a) (< ?b ?b)) ==> (< (+ ?b ?a) (max ?b ?a))", + "(max (< ?a ?b) (< ?b ?a)) ==> (+ (< ?a ?b) (< ?b ?a))", + "(+ (< ?a ?b) (< ?b ?a)) ==> (max (< ?a ?b) (< ?b ?a))", + "(- (* ?b ?b) (* ?a ?a)) ==> (* (+ ?b ?a) (- ?b ?a))", + "(* (+ ?b ?a) (- ?b ?a)) ==> (- (* ?b ?b) (* ?a ?a))", + "(- (max ?b ?a) (min ?b ?a)) ==> (max (- ?b ?a) (- ?a ?b))", + "(max (- ?b ?a) (- ?a ?b)) ==> (- (max ?b ?a) (min ?b ?a))", + "(+ (max ?b ?a) (max ?b ?a)) ==> (max (+ ?b ?b) (+ ?a ?a))", + "(max (+ ?b ?b) (+ ?a ?a)) ==> (+ (max ?b ?a) (max ?b ?a))", + "(< (< ?a ?b) (< ?b ?a)) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< (< ?a ?b) (< ?b ?a))", + "(min (+ ?b ?b) (+ ?a ?a)) ==> (+ (min ?b ?a) (min ?b ?a))", + "(+ (min ?b ?a) (min ?b ?a)) ==> (min (+ ?b ?b) (+ ?a ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (max ?b ?a) (+ ?b ?a))", + "(< (max ?b ?a) (+ ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(min (< ?b ?b) (* ?b ?a)) ==> (min (* ?b ?a) (! ?a))", + "(min (* ?b ?a) (! ?a)) ==> (min (< ?b ?b) (* ?b ?a))", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) (+ ?a ?a))", + "(< (< ?b ?a) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?a) (* ?b ?a))", + "(< (< ?b ?b) (* ?b ?a)) ==> (< (! ?b) (* ?b ?a))", + "(< (! ?b) (* ?b ?a)) ==> (< (< ?b ?b) (* ?b ?a))", + "(< (< ?b ?b) (min ?b ?a)) ==> (< (! ?b) (min ?b ?a))", + "(< (! ?b) (min ?b ?a)) ==> (< (< ?b ?b) (min ?b ?a))", + "(- (max ?a ?b) ?a) ==> (* (< ?a ?b) (- ?b ?a))", + "(* (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(- (min ?b ?a) ?a) ==> (min (- ?b ?a) (< ?b ?a))", + "(min (- ?b ?a) (< ?b ?a)) ==> (- (min ?b ?a) ?a)", + "(- (max ?a ?b) ?a) ==> (max (< ?a ?b) (- ?b ?a))", + "(max (< ?a ?b) (- ?b ?a)) ==> (- (max ?a ?b) ?a)", + "(< (* ?b ?b) (max ?b ?a)) ==> (< (* ?b ?b) ?a)", + "(< (* ?b ?b) ?a) ==> (< (* ?b ?b) (max ?b ?a))", + "(* ?b (< ?b ?a)) ==> (* (< ?b ?a) (min ?b ?a))", + "(* (< ?b ?a) (min ?b ?a)) ==> (* ?b (< ?b ?a))", + "(* ?a (< ?b ?a)) ==> (* (max ?a ?b) (< ?b ?a))", + "(* (max ?a ?b) (< ?b ?a)) ==> (* ?a (< ?b ?a))", + "(< (< ?b ?b) ?a) ==> (< (< ?b ?a) (+ ?a ?a))", + "(< (< ?b ?a) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (! ?a) ?a)", + "(< (< ?a ?b) (+ ?a ?a)) ==> (< (- ?a) ?a)", + "(* (max ?b ?a) (min ?b ?a)) ==> (* ?b ?a)", + "(* ?b ?a) ==> (* (max ?b ?a) (min ?b ?a))", + "(max (min ?b ?a) (* ?a ?a)) ==> (* ?a ?a)", + "(< ?b ?a) ==> (< (< ?a ?b) (- ?a ?b))", + "(< (< ?a ?b) (- ?a ?b)) ==> (< ?b ?a)", + "(min (* ?a ?b) (! ?a)) ==> (min (* ?a ?b) (! ?b))", + "(min (* ?a ?b) (! ?b)) ==> (min (* ?a ?b) (! ?a))", + "(* (! ?b) (! ?a)) ==> (< (* ?b ?b) (! ?a))", + "(< (* ?b ?b) (! ?a)) ==> (* (! ?b) (! ?a))", + "(< (< ?b ?b) ?a) ==> (< (! ?b) (+ ?a ?a))", + "(< (! ?b) (+ ?a ?a)) ==> (< (< ?b ?b) ?a)", + "(< (+ ?b ?a) ?a) ==> (< (+ ?b ?b) (- ?b))", + "(* (! ?b) ?a) ==> (* (! ?b) (- ?a ?b))", + "(* (! ?b) (- ?a ?b)) ==> (* (! ?b) ?a)", + "(< (+ ?b ?b) (! ?a)) ==> (< ?b (! ?a))", + "(< ?b (! ?a)) ==> (< (+ ?b ?b) (! ?a))", + "(< (+ ?b ?a) ?a) ==> (< (! ?b) (- ?b))", + "(max (< ?c ?b) (< ?b ?a)) ==> (< (min ?c ?b) (max ?b ?a))", + "(< (min ?c ?b) (max ?b ?a)) ==> (max (< ?c ?b) (< ?b ?a))", + "(max (< ?c ?c) (< ?b ?a)) ==> (< (+ ?c ?b) (+ ?c ?a))", + "(< (+ ?c ?b) (+ ?c ?a)) ==> (max (< ?c ?c) (< ?b ?a))", + "(< (+ ?c ?c) (+ ?b ?a)) ==> (< (- ?c ?b) (- ?a ?c))", + "(< (- ?c ?b) (- ?a ?c)) ==> (< (+ ?c ?c) (+ ?b ?a))", + "(min (< ?a ?a) (< ?b ?c)) ==> (min (< ?a ?b) (< ?b ?a))", + "(< (- ?a ?c) (< ?b ?a)) ==> (< (- ?a ?c) (< ?b ?c))", + "(< (- ?a ?c) (< ?b ?c)) ==> (< (- ?a ?c) (< ?b ?a))", + "(< (- ?c ?b) (< ?b ?a)) ==> (< (- ?c ?b) (< ?c ?a))", + "(< (- ?c ?b) (< ?c ?a)) ==> (< (- ?c ?b) (< ?b ?a))", + "(< (max ?c ?b) (min ?b ?a)) ==> (* (+ ?c ?c) (! ?c))", + "(* (< ?a ?a) (+ ?c ?b)) ==> (* (+ ?a ?a) (! ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(< (! ?c) (< ?b ?a)) ==> (min (* ?c ?c) (< ?b ?a))", + "(min (* ?c ?c) (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(* (< ?c ?c) (< ?b ?a)) ==> (* (* ?c ?b) (! ?b))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< (* ?c ?c) (- ?c))", + "(< (* ?c ?c) (< ?b ?a)) ==> (* (! ?c) (< ?b ?a))", + "(* (! ?c) (< ?b ?a)) ==> (< (* ?c ?c) (< ?b ?a))", + "(- ?c (min ?b ?a)) ==> (max (- ?c ?b) (- ?c ?a))", + "(max (- ?c ?b) (- ?c ?a)) ==> (- ?c (min ?b ?a))", + "(< (+ ?c ?c) (< ?b ?a)) ==> (< ?c (< ?b ?a))", + "(< ?c (< ?b ?a)) ==> (< (+ ?c ?c) (< ?b ?a))", + "(max ?c (min ?b ?a)) ==> (min (max ?c ?b) (max ?c ?a))", + "(min (max ?c ?b) (max ?c ?a)) ==> (max ?c (min ?b ?a))", + "(min ?c (max ?b ?a)) ==> (max (min ?c ?b) (min ?c ?a))", + "(max (min ?c ?b) (min ?c ?a)) ==> (min ?c (max ?b ?a))", + "(max (+ ?b ?c) (+ ?b ?a)) ==> (+ ?b (max ?c ?a))", + "(+ ?b (max ?c ?a)) ==> (max (+ ?b ?c) (+ ?b ?a))", + "(+ ?c (min ?b ?a)) ==> (min (+ ?c ?b) (+ ?c ?a))", + "(min (+ ?c ?b) (+ ?c ?a)) ==> (+ ?c (min ?b ?a))", + "(+ (* ?b ?c) (* ?b ?a)) ==> (* ?b (+ ?c ?a))", + "(* ?b (+ ?c ?a)) ==> (+ (* ?b ?c) (* ?b ?a))", + "(* (< ?c ?c) (- ?b ?a)) ==> (< ?c ?c)", + "(* (< ?c ?c) (< ?b ?a)) ==> (< ?c ?c)", + "(max (< ?c ?c) (< ?b ?a)) ==> (< ?b ?a)", + "(< (- ?c ?a) (- ?c ?b)) ==> (< ?b ?a)", + "(min (min ?c ?b) (max ?b ?a)) ==> (min ?c ?b)", + "(min (!= ?a ?b) (<= ?b ?a)) ==> (min (|| ?a ?b) (< ?b ?a))", + "(min (|| ?a ?b) (< ?b ?a)) ==> (min (!= ?a ?b) (<= ?b ?a))", + "(!= (< ?b ?b) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (!= (< ?b ?b) (min ?b ?a))", + "(!= (< ?b ?b) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (!= (< ?b ?b) (max ?b ?a))", + "(< (< ?b ?a) (&& ?b ?a)) ==> (min (&& ?b ?a) (<= ?a ?b))", + "(min (&& ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?b ?a))", + "(< (<= ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (< ?a ?b))", + "(&& (min ?b ?a) (< ?a ?b)) ==> (< (<= ?b ?a) (&& ?a ?a))", + "(< (< ?b ?a) (&& ?a ?a)) ==> (&& (min ?b ?a) (<= ?a ?b))", + "(&& (min ?b ?a) (<= ?a ?b)) ==> (< (< ?b ?a) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?b ?a)) ==> (max (&& ?b ?a) (<= ?a ?b))", + "(max (&& ?b ?a) (<= ?a ?b)) ==> (<= (< ?b ?a) (&& ?b ?a))", + "(!= (!= ?a ?b) (<= ?b ?a)) ==> (<= (|| ?a ?b) (<= ?a ?b))", + "(<= (|| ?a ?b) (<= ?a ?b)) ==> (!= (!= ?a ?b) (<= ?b ?a))", + "(|| (&& ?b ?a) (min ?b ?a)) ==> (&& (|| ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (min ?b ?a)) ==> (|| (&& ?b ?a) (min ?b ?a))", + "(&& (|| ?b ?a) (max ?b ?a)) ==> (|| (&& ?b ?a) (max ?b ?a))", + "(|| (&& ?b ?a) (max ?b ?a)) ==> (&& (|| ?b ?a) (max ?b ?a))", + "(<= (|| ?b ?a) (== ?b ?a)) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (<= (|| ?b ?a) (== ?b ?a))", + "(< (< ?b ?a) (|| ?b ?a)) ==> (!= (|| ?b ?a) (< ?b ?a))", + "(!= (|| ?b ?a) (< ?b ?a)) ==> (< (< ?b ?a) (|| ?b ?a))", + "(< (max ?a ?b) (&& ?a ?a)) ==> (< (max ?a ?b) (< ?a ?b))", + "(< (max ?a ?b) (< ?a ?b)) ==> (< (max ?a ?b) (&& ?a ?a))", + "(<= (< ?b ?a) (&& ?a ?a)) ==> (|| (max ?b ?a) (! ?b))", + "(|| (max ?b ?a) (! ?b)) ==> (<= (< ?b ?a) (&& ?a ?a))", + "(<= (&& ?b ?b) (== ?b ?a)) ==> (max (== ?b ?a) (! ?b))", + "(max (== ?b ?a) (! ?b)) ==> (<= (&& ?b ?b) (== ?b ?a))", + "(!= (! ?b) (&& ?a ?a)) ==> (<= (!= ?b ?a) (&& ?b ?a))", + "(<= (!= ?b ?a) (&& ?b ?a)) ==> (!= (! ?b) (&& ?a ?a))", + "(< (&& ?b ?a) (!= ?b ?a)) ==> (!= (! ?b) (! ?a))", + "(!= (! ?b) (! ?a)) ==> (< (&& ?b ?a) (!= ?b ?a))", + "(max (&& ?b ?a) (== ?b ?a)) ==> (== (! ?b) (! ?a))", + "(== (! ?b) (! ?a)) ==> (max (&& ?b ?a) (== ?b ?a))", + "(== (|| ?b ?a) (== ?b ?a)) ==> (&& (== ?b ?a) ?a)", + "(&& (== ?b ?a) ?a) ==> (== (|| ?b ?a) (== ?b ?a))", + "(|| (max ?b ?a) ?a) ==> (|| (max ?b ?a) (< ?a ?b))", + "(|| (max ?b ?a) (< ?a ?b)) ==> (|| (max ?b ?a) ?a)", + "(|| ?b (<= ?b ?a)) ==> (|| (<= ?b ?a) (max ?b ?a))", + "(|| (<= ?b ?a) (max ?b ?a)) ==> (|| ?b (<= ?b ?a))", + "(&& ?a (<= ?b ?a)) ==> (&& (max ?a ?b) (<= ?b ?a))", + "(&& (max ?a ?b) (<= ?b ?a)) ==> (&& ?a (<= ?b ?a))", + "(&& ?a (< ?b ?a)) ==> (&& (max ?a ?b) (< ?b ?a))", + "(&& (max ?a ?b) (< ?b ?a)) ==> (&& ?a (< ?b ?a))", + "(!= (!= ?b ?a) (< ?b ?a)) ==> (< ?a ?b)", + "(< ?a ?b) ==> (!= (!= ?b ?a) (< ?b ?a))", + "(== ?b ?a) ==> (== (<= ?b ?a) (<= ?a ?b))", + "(== (<= ?b ?a) (<= ?a ?b)) ==> (== ?b ?a)", + "(== (min ?a ?b) (! ?a)) ==> (&& (max ?a ?b) (! ?b))", + "(&& (max ?a ?b) (! ?b)) ==> (== (min ?a ?b) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (|| ?b ?a) (! ?b))", + "(!= (|| ?b ?a) (! ?b)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (!= (&& ?b ?a) (! ?a))", + "(!= (&& ?b ?a) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(< (- ?b) (!= ?b ?a)) ==> (< (- ?b) (&& ?a ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (< (- ?b) (!= ?b ?a))", + "(min (<= ?b ?b) (- ?a)) ==> (min (|| ?b ?a) (- ?a))", + "(min (|| ?b ?a) (- ?a)) ==> (min (<= ?b ?b) (- ?a))", + "(<= (- ?a) (|| ?a ?b)) ==> (<= (- ?a) (<= ?a ?a))", + "(min (&& ?b ?b) (- ?a)) ==> (min (&& ?b ?a) (- ?a))", + "(min (&& ?b ?a) (- ?a)) ==> (min (&& ?b ?b) (- ?a))", + "(min (min ?a ?b) (! ?a)) ==> (min (min ?a ?b) (! ?b))", + "(min (min ?a ?b) (! ?b)) ==> (min (min ?a ?b) (! ?a))", + "(< (- ?b) (&& ?a ?a)) ==> (<= (== ?b ?a) ?b)", + "(<= (== ?b ?a) ?b) ==> (< (- ?b) (&& ?a ?a))", + "(|| (<= ?b ?a) ?a) ==> (!= (min ?b ?a) (! ?b))", + "(!= (min ?b ?a) (! ?b)) ==> (|| (<= ?b ?a) ?a)", + "(<= (! ?b) (! ?a)) ==> (max (&& ?b ?a) (! ?a))", + "(max (&& ?b ?a) (! ?a)) ==> (<= (! ?b) (! ?a))", + "(|| (max ?b ?a) (! ?a)) ==> (|| ?b (<= ?b ?a))", + "(|| ?b (<= ?b ?a)) ==> (|| (max ?b ?a) (! ?a))", + "(|| (min ?a ?b) (! ?a)) ==> (|| (<= ?a ?b) ?b)", + "(|| (<= ?a ?b) ?b) ==> (|| (min ?a ?b) (! ?a))", + "(<= (== ?b ?a) (- ?a)) ==> (<= (! ?b) (- ?a))", + "(<= (! ?b) (- ?a)) ==> (<= (== ?b ?a) (- ?a))", + "(< (- ?a) (< ?b ?a)) ==> (<= (<= ?a ?b) ?a)", + "(<= (<= ?a ?b) ?a) ==> (< (- ?a) (< ?b ?a))", + "(< ?a (<= ?b ?a)) ==> (<= (< ?a ?b) (- ?a))", + "(<= (< ?a ?b) (- ?a)) ==> (< ?a (<= ?b ?a))", + "(<= (< ?a ?b) ?a) ==> (< (- ?a) (<= ?b ?a))", + "(< (- ?a) (<= ?b ?a)) ==> (<= (< ?a ?b) ?a)", + "(< ?a (< ?b ?a)) ==> (<= (<= ?a ?b) (- ?a))", + "(<= (<= ?a ?b) (- ?a)) ==> (< ?a (< ?b ?a))", + "(< ?b (! ?a)) ==> (<= (|| ?b ?a) (- ?b))", + "(<= (|| ?b ?a) (- ?b)) ==> (< ?b (! ?a))", + "(< (- ?a) (&& ?a ?b)) ==> (< (- ?a) ?a)", + "(<= (!= ?a ?b) ?a) ==> (< (- ?a) (! ?b))", + "(< (- ?a) (! ?b)) ==> (<= (!= ?a ?b) ?a)", + "(|| ?b (max ?b ?a)) ==> (|| ?b (< ?b ?a))", + "(|| ?b (< ?b ?a)) ==> (|| ?b (max ?b ?a))", + "(<= (&& ?b ?b) ?a) ==> (<= (!= ?b ?a) ?a)", + "(<= (!= ?b ?a) ?a) ==> (<= (&& ?b ?b) ?a)", + "(<= (|| ?a ?b) ?a) ==> (<= (!= ?a ?b) ?a)", + "(<= (!= ?a ?b) ?a) ==> (<= (|| ?a ?b) ?a)", + "(<= (&& ?a ?b) ?a) ==> (<= (- ?a) ?a)", + "(<= (< ?c ?c) (&& ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?c ?c) (!= ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(<= (< ?b ?b) (|| ?a ?c)) ==> (!= (!= ?b ?a) (== ?b ?a))", + "(<= (== ?c ?b) (&& ?a ?a)) ==> (max (!= ?c ?b) (&& ?a ?a))", + "(max (!= ?c ?b) (&& ?a ?a)) ==> (<= (== ?c ?b) (&& ?a ?a))", + "(<= (== ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (<= (== ?b ?c) (&& ?b ?a))", + "(< (== ?c ?b) (&& ?a ?a)) ==> (min (!= ?c ?b) (&& ?a ?a))", + "(min (!= ?c ?b) (&& ?a ?a)) ==> (< (== ?c ?b) (&& ?a ?a))", + "(== (&& ?a ?c) (< ?b ?a)) ==> (!= (&& ?a ?c) (<= ?a ?b))", + "(!= (&& ?a ?c) (<= ?a ?b)) ==> (== (&& ?a ?c) (< ?b ?a))", + "(== (|| ?c ?a) (<= ?b ?a)) ==> (!= (|| ?c ?a) (< ?a ?b))", + "(!= (|| ?c ?a) (< ?a ?b)) ==> (== (|| ?c ?a) (<= ?b ?a))", + "(!= (|| ?a ?c) (< ?b ?a)) ==> (== (|| ?a ?c) (<= ?a ?b))", + "(== (|| ?a ?c) (<= ?a ?b)) ==> (!= (|| ?a ?c) (< ?b ?a))", + "(== (&& ?c ?a) (<= ?b ?a)) ==> (!= (&& ?c ?a) (< ?a ?b))", + "(!= (&& ?c ?a) (< ?a ?b)) ==> (== (&& ?c ?a) (<= ?b ?a))", + "(max (<= ?c ?c) (== ?b ?a)) ==> (max (!= ?c ?b) (== ?c ?b))", + "(< (<= ?b ?b) (!= ?a ?c)) ==> (== (!= ?b ?a) (== ?b ?a))", + "(< (<= ?b ?b) (&& ?a ?c)) ==> (< (<= ?b ?a) (== ?b ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (max ?c ?b) (min ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?c))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?b))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (== ?c ?b) (&& ?b ?b))", + "(max (|| ?b ?a) (&& ?b ?c)) ==> (|| (max ?b ?a) (min ?b ?a))", + "(|| (< ?c ?c) (max ?b ?a)) ==> (!= (< ?c ?c) (max ?b ?a))", + "(!= (< ?c ?c) (max ?b ?a)) ==> (|| (< ?c ?c) (max ?b ?a))", + "(max (|| ?b ?c) (!= ?b ?a)) ==> (max (&& ?b ?b) (|| ?c ?a))", + "(max (&& ?b ?b) (|| ?c ?a)) ==> (max (|| ?b ?c) (!= ?b ?a))", + "(max (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (min ?c ?b))", + "(|| (|| ?a ?c) (min ?c ?b)) ==> (max (|| ?a ?c) (< ?b ?a))", + "(!= (&& ?b ?c) (|| ?b ?a)) ==> (< (&& ?b ?c) (|| ?b ?a))", + "(< (&& ?b ?c) (|| ?b ?a)) ==> (!= (&& ?b ?c) (|| ?b ?a))", + "(<= (|| ?b ?c) (&& ?b ?a)) ==> (== (|| ?b ?c) (&& ?b ?a))", + "(== (|| ?b ?c) (&& ?b ?a)) ==> (<= (|| ?b ?c) (&& ?b ?a))", + "(== (< ?c ?b) (<= ?b ?a)) ==> (!= (< ?c ?b) (< ?a ?b))", + "(!= (< ?c ?b) (< ?a ?b)) ==> (== (< ?c ?b) (<= ?b ?a))", + "(!= (== ?c ?a) (< ?b ?a)) ==> (!= (!= ?c ?a) (<= ?a ?b))", + "(!= (!= ?c ?a) (<= ?a ?b)) ==> (!= (== ?c ?a) (< ?b ?a))", + "(== (min ?b ?c) (max ?b ?a)) ==> (min (<= ?b ?c) (<= ?a ?b))", + "(min (<= ?b ?c) (<= ?a ?b)) ==> (== (min ?b ?c) (max ?b ?a))", + "(!= (!= ?b ?c) (< ?b ?a)) ==> (== (!= ?b ?c) (<= ?a ?b))", + "(== (!= ?b ?c) (<= ?a ?b)) ==> (!= (!= ?b ?c) (< ?b ?a))", + "(== (<= ?c ?a) (<= ?b ?a)) ==> (!= (<= ?c ?a) (< ?a ?b))", + "(!= (<= ?c ?a) (< ?a ?b)) ==> (== (<= ?c ?a) (<= ?b ?a))", + "(== (< ?c ?a) (<= ?b ?a)) ==> (!= (< ?c ?a) (< ?a ?b))", + "(!= (< ?c ?a) (< ?a ?b)) ==> (== (< ?c ?a) (<= ?b ?a))", + "(!= (<= ?a ?c) (< ?b ?a)) ==> (== (<= ?a ?c) (<= ?a ?b))", + "(== (<= ?a ?c) (<= ?a ?b)) ==> (!= (<= ?a ?c) (< ?b ?a))", + "(!= (< ?a ?c) (< ?b ?a)) ==> (== (< ?a ?c) (<= ?a ?b))", + "(== (< ?a ?c) (<= ?a ?b)) ==> (!= (< ?a ?c) (< ?b ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (max (<= ?c ?b) (<= ?b ?c))", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (max (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (<= ?b ?a)) ==> (== (<= ?c ?b) (< ?b ?c))", + "(< (<= ?c ?c) (< ?b ?a)) ==> (== (< ?c ?b) (<= ?b ?c))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (min ?b ?a))", + "(&& (&& ?b ?a) (|| ?a ?c)) ==> (&& (&& ?b ?a) (max ?b ?a))", + "(&& (== ?c ?b) (max ?b ?a)) ==> (&& (== ?c ?b) (max ?c ?a))", + "(&& (== ?c ?b) (max ?c ?a)) ==> (&& (== ?c ?b) (max ?b ?a))", + "(max (!= ?b ?c) (<= ?b ?a)) ==> (max (!= ?b ?c) (<= ?c ?a))", + "(max (!= ?b ?c) (<= ?c ?a)) ==> (max (!= ?b ?c) (<= ?b ?a))", + "(max (!= ?b ?c) (&& ?b ?a)) ==> (max (!= ?b ?c) (&& ?c ?a))", + "(max (!= ?b ?c) (&& ?c ?a)) ==> (max (!= ?b ?c) (&& ?b ?a))", + "(<= (min ?a ?b) (|| ?a ?c)) ==> (<= (min ?a ?b) (<= ?a ?a))", + "(|| (!= ?c ?b) (max ?b ?a)) ==> (|| (!= ?c ?b) (max ?c ?a))", + "(|| (!= ?c ?b) (max ?c ?a)) ==> (|| (!= ?c ?b) (max ?b ?a))", + "(min (== ?c ?b) (|| ?b ?a)) ==> (min (== ?c ?b) (|| ?c ?a))", + "(min (== ?c ?b) (|| ?c ?a)) ==> (min (== ?c ?b) (|| ?b ?a))", + "(|| (min ?b ?c) (|| ?b ?a)) ==> (<= (<= ?b ?c) (|| ?b ?a))", + "(<= (<= ?b ?c) (|| ?b ?a)) ==> (|| (min ?b ?c) (|| ?b ?a))", + "(!= (<= ?b ?c) (== ?b ?a)) ==> (== (<= ?b ?c) (!= ?b ?a))", + "(== (<= ?b ?c) (!= ?b ?a)) ==> (!= (<= ?b ?c) (== ?b ?a))", + "(&& (== ?c ?b) (min ?b ?a)) ==> (&& (== ?c ?b) (min ?c ?a))", + "(&& (== ?c ?b) (min ?c ?a)) ==> (&& (== ?c ?b) (min ?b ?a))", + "(<= (<= ?c ?b) (|| ?b ?a)) ==> (|| (max ?c ?b) (|| ?b ?a))", + "(|| (max ?c ?b) (|| ?b ?a)) ==> (<= (<= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (min ?b ?a)) ==> (|| (!= ?c ?b) (min ?c ?a))", + "(|| (!= ?c ?b) (min ?c ?a)) ==> (|| (!= ?c ?b) (min ?b ?a))", + "(!= (!= ?a ?c) (<= ?b ?a)) ==> (== (== ?a ?c) (<= ?b ?a))", + "(== (== ?a ?c) (<= ?b ?a)) ==> (!= (!= ?a ?c) (<= ?b ?a))", + "(<= (== ?b ?c) (<= ?b ?a)) ==> (<= (== ?b ?c) (<= ?c ?a))", + "(<= (== ?b ?c) (<= ?c ?a)) ==> (<= (== ?b ?c) (<= ?b ?a))", + "(< (!= ?a ?c) (< ?b ?a)) ==> (< (!= ?a ?c) (< ?b ?c))", + "(< (!= ?a ?c) (< ?b ?c)) ==> (< (!= ?a ?c) (< ?b ?a))", + "(|| (|| ?b ?c) (max ?b ?a)) ==> (|| (|| ?b ?c) (max ?c ?a))", + "(|| (|| ?b ?c) (max ?c ?a)) ==> (|| (|| ?b ?c) (max ?b ?a))", + "(|| (|| ?c ?b) (< ?b ?a)) ==> (|| (|| ?c ?b) (< ?c ?a))", + "(|| (|| ?c ?b) (< ?c ?a)) ==> (|| (|| ?c ?b) (< ?b ?a))", + "(min (min ?b ?a) (|| ?b ?c)) ==> (min (|| ?b ?a) (min ?b ?a))", + "(|| (|| ?b ?c) (min ?b ?a)) ==> (|| (|| ?b ?c) (min ?c ?a))", + "(|| (|| ?b ?c) (min ?c ?a)) ==> (|| (|| ?b ?c) (min ?b ?a))", + "(|| (|| ?a ?c) (< ?b ?a)) ==> (|| (|| ?a ?c) (< ?b ?c))", + "(|| (|| ?a ?c) (< ?b ?c)) ==> (|| (|| ?a ?c) (< ?b ?a))", + "(<= (== ?a ?c) (<= ?b ?a)) ==> (<= (== ?a ?c) (<= ?b ?c))", + "(<= (== ?a ?c) (<= ?b ?c)) ==> (<= (== ?a ?c) (<= ?b ?a))", + "(min (== ?c ?b) (== ?b ?a)) ==> (min (== ?c ?b) (== ?c ?a))", + "(min (== ?c ?b) (== ?c ?a)) ==> (min (== ?c ?b) (== ?b ?a))", + "(&& (== ?c ?b) (&& ?b ?a)) ==> (&& (== ?c ?b) (&& ?c ?a))", + "(&& (== ?c ?b) (&& ?c ?a)) ==> (&& (== ?c ?b) (&& ?b ?a))", + "(|| (|| ?b ?c) (<= ?b ?a)) ==> (|| (|| ?b ?c) (<= ?c ?a))", + "(|| (|| ?b ?c) (<= ?c ?a)) ==> (|| (|| ?b ?c) (<= ?b ?a))", + "(< (!= ?c ?b) (< ?b ?a)) ==> (< (!= ?c ?b) (< ?c ?a))", + "(< (!= ?c ?b) (< ?c ?a)) ==> (< (!= ?c ?b) (< ?b ?a))", + "(min (&& ?c ?b) (min ?b ?a)) ==> (min (&& ?c ?c) (min ?b ?a))", + "(min (&& ?c ?c) (min ?b ?a)) ==> (min (&& ?c ?b) (min ?b ?a))", + "(< (|| ?b ?c) (< ?b ?a)) ==> (< (|| ?b ?c) (< ?c ?a))", + "(< (|| ?b ?c) (< ?c ?a)) ==> (< (|| ?b ?c) (< ?b ?a))", + "(|| (|| ?a ?c) (<= ?b ?a)) ==> (|| (|| ?a ?c) (<= ?b ?c))", + "(|| (|| ?a ?c) (<= ?b ?c)) ==> (|| (|| ?a ?c) (<= ?b ?a))", + "(< (|| ?a ?c) (&& ?a ?b)) ==> (== (&& ?a ?a) (! ?a))", + "(|| (|| ?c ?b) (&& ?b ?a)) ==> (<= (! ?c) (!= ?c ?b))", + "(max (<= ?c ?c) (&& ?b ?a)) ==> (max (&& ?c ?c) (! ?c))", + "(|| (&& ?b ?c) (&& ?b ?a)) ==> (< (! ?b) (|| ?c ?a))", + "(< (! ?b) (|| ?c ?a)) ==> (|| (&& ?b ?c) (&& ?b ?a))", + "(min (< ?c ?c) (&& ?b ?a)) ==> (min (&& ?c ?b) (! ?b))", + "(&& (|| ?b ?c) (|| ?b ?a)) ==> (<= (! ?b) (&& ?c ?a))", + "(<= (! ?b) (&& ?c ?a)) ==> (&& (|| ?b ?c) (|| ?b ?a))", + "(max (|| ?c ?b) (! ?a)) ==> (max (|| ?c ?b) (== ?c ?a))", + "(max (|| ?c ?b) (== ?c ?a)) ==> (max (|| ?c ?b) (! ?a))", + "(min (< ?a ?a) (&& ?c ?b)) ==> (== (- ?a) (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== (- ?a) (! ?a))", + "(|| ?c (<= ?b ?a)) ==> (max (&& ?c ?c) (<= ?b ?a))", + "(max (&& ?c ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (max (!= ?c ?b) (|| ?c ?a))", + "(max (!= ?c ?b) (|| ?c ?a)) ==> (|| ?c (|| ?b ?a))", + "(<= ?c (max ?b ?a)) ==> (max (<= ?c ?b) (<= ?c ?a))", + "(max (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (max ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (|| (!= ?c ?b) (|| ?b ?a))", + "(|| (!= ?c ?b) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(min (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (min ?c ?a))", + "(<= ?b (min ?c ?a)) ==> (min (<= ?b ?c) (<= ?b ?a))", + "(max (<= ?a ?a) (|| ?c ?b)) ==> (!= ?a (! ?a))", + "(min (< ?a ?a) (!= ?c ?b)) ==> (== ?a (! ?a))", + "(< (<= ?a ?a) (< ?c ?b)) ==> (== ?a (! ?a))", + "(max (<= ?c ?c) (< ?b ?a)) ==> (<= ?c ?c)", + "(max (<= ?c ?c) (== ?b ?a)) ==> (<= ?c ?c)", + "(< (|| ?a ?c) (&& ?c ?b)) ==> (< ?a ?a)", + "(min (|| ?b ?c) (&& ?b ?a)) ==> (&& ?b ?a)", + "(max (<= ?c ?c) (<= ?b ?a)) ==> (<= ?c ?c)", + "(< (== ?c ?b) (! ?a)) ==> (min (!= ?c ?b) (! ?a))", + "(min (!= ?c ?b) (! ?a)) ==> (< (== ?c ?b) (! ?a))", + "(|| ?c (< ?b ?a)) ==> (<= (! ?c) (< ?b ?a))", + "(<= (! ?c) (< ?b ?a)) ==> (|| ?c (< ?b ?a))", + "(|| ?c (!= ?b ?a)) ==> (<= (! ?c) (!= ?b ?a))", + "(<= (! ?c) (!= ?b ?a)) ==> (|| ?c (!= ?b ?a))", + "(&& ?c (!= ?b ?a)) ==> (< (! ?c) (!= ?b ?a))", + "(< (! ?c) (!= ?b ?a)) ==> (&& ?c (!= ?b ?a))", + "(|| ?c (|| ?b ?a)) ==> (<= (! ?c) (|| ?b ?a))", + "(<= (! ?c) (|| ?b ?a)) ==> (|| ?c (|| ?b ?a))", + "(&& ?c (&& ?b ?a)) ==> (< (! ?c) (&& ?b ?a))", + "(< (! ?c) (&& ?b ?a)) ==> (&& ?c (&& ?b ?a))", + "(&& ?c (< ?b ?a)) ==> (< (! ?c) (< ?b ?a))", + "(< (! ?c) (< ?b ?a)) ==> (&& ?c (< ?b ?a))", + "(|| ?c (<= ?b ?a)) ==> (<= (! ?c) (<= ?b ?a))", + "(<= (! ?c) (<= ?b ?a)) ==> (|| ?c (<= ?b ?a))", + "(select ?b (+ ?b ?b) (* ?b ?a)) ==> (+ ?b ?b)", + "(- ?c (select ?a ?b ?a)) ==> (select ?a (- ?c ?b) (+ ?c ?a))", + "(select ?a (- ?c ?b) (+ ?c ?a)) ==> (- ?c (select ?a ?b ?a))", + "(- ?a (select ?c ?b ?b)) ==> (select ?b (- ?a ?b) ?a)", + "(select ?a ?c (- ?b ?a)) ==> (select ?a ?c ?b)", + "(select ?a ?c ?b) ==> (select ?a ?c (- ?b ?a))", + "(select ?a ?c (* ?b ?a)) ==> (select ?a ?c ?a)", + "(select ?a ?b (* ?a ?c)) ==> (select ?a ?b ?a)", + "(select ?c ?b ?a) ==> (select ?c ?b (+ ?c ?a))", + "(select ?c ?b (+ ?c ?a)) ==> (select ?c ?b ?a)", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (- ?b ?b)) ==> (select ?a (+ ?d ?c) (* ?b ?a))", + "(select ?d (+ ?c ?b) (- ?a ?a)) ==> (select ?d (+ ?c ?b) (* ?d ?c))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (select ?d (- ?c ?b) (+ ?d ?d))", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (select ?b (* ?d ?c) (- ?b ?b))", + "(select ?a (+ ?d ?c) (* ?b ?a)) ==> (select ?a (+ ?d ?c) ?a)", + "(select ?a (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?a ?c ?d))", + "(select ?b (- ?d ?c) (* ?b ?a)) ==> (- ?d (select ?b ?c ?d))", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (- ?a ?d))", + "(select ?d (* ?c ?b) (- ?a ?d)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?a (- ?d ?c) (+ ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (+ ?b ?a))", + "(select ?a (+ ?c ?b) (* ?a ?d)) ==> (select ?a (+ ?c ?b) ?a)", + "(select ?d (* ?c ?b) ?a) ==> (select ?d (* ?c ?b) (+ ?d ?a))", + "(select ?d (* ?c ?b) (+ ?d ?a)) ==> (select ?d (* ?c ?b) ?a)", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (- ?a ?d))", + "(select ?d (+ ?c ?b) (- ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(select ?b (* ?d ?c) (* ?b ?a)) ==> (* ?d (select ?b ?c ?b))", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (select ?a (* ?c ?b) ?a)", + "(select ?a (* ?c ?b) (* ?d ?a)) ==> (* ?c (select ?a ?b ?a))", + "(select ?a (- ?d ?c) (- ?b ?a)) ==> (select ?a (- ?d ?c) ?b)", + "(select ?a (- ?d ?c) ?b) ==> (select ?a (- ?d ?c) (- ?b ?a))", + "(select ?d (- ?b ?c) (- ?b ?a)) ==> (- ?b (select ?d ?c ?a))", + "(- ?b (select ?d ?c ?a)) ==> (select ?d (- ?b ?c) (- ?b ?a))", + "(select ?d (- ?c ?b) (- ?a ?a)) ==> (- ?c (select ?d ?b ?c))", + "(select ?d (+ ?c ?b) ?a) ==> (select ?d (+ ?c ?b) (+ ?a ?d))", + "(select ?d (+ ?c ?b) (+ ?a ?d)) ==> (select ?d (+ ?c ?b) ?a)", + "(* ?d (select ?c ?b ?a)) ==> (select ?c (* ?b ?d) (* ?d ?a))", + "(select ?c (* ?b ?d) (* ?d ?a)) ==> (* ?d (select ?c ?b ?a))", + "(select ?d (min ?a ?c) (min ?b ?a)) ==> (min ?a (select ?d ?c ?b))", + "(min ?a (select ?d ?c ?b)) ==> (select ?d (min ?a ?c) (min ?b ?a))", + "(max ?d (select ?c ?b ?a)) ==> (select ?c (max ?b ?d) (max ?a ?d))", + "(select ?c (max ?b ?d) (max ?a ?d)) ==> (max ?d (select ?c ?b ?a))" + ] +} diff --git a/jfp/cs2/halide/w-None-Halide-derive.json b/jfp/cs2/halide/w-None-Halide-derive.json new file mode 100644 index 00000000..8d1b5138 --- /dev/null +++ b/jfp/cs2/halide/w-None-Halide-derive.json @@ -0,0 +1,737 @@ +{ + "duration": { + "secs": 1, + "nanos": 154865500 + }, + "num_rules": 414, + "num_against": 725, + "can": [ + "(! (<= ?x ?y)) ==> (< ?y ?x)", + "(! (== ?x ?y)) ==> (!= ?x ?y)", + "(! (!= ?x ?y)) ==> (== ?x ?y)", + "(! (&& (! ?x) ?y)) ==> (|| ?x (! ?y))", + "(! (|| (! ?x) ?y)) ==> (&& ?x (! ?y))", + "(! (&& ?x (! ?y))) ==> (|| (! ?x) ?y)", + "(! (|| ?x (! ?y))) ==> (&& (! ?x) ?y)", + "(< ?x (min ?x ?y)) ==> 0", + "(< ?x (min ?y ?x)) ==> 0", + "(< (max ?z ?y) (min ?x ?y)) ==> 0", + "(< (max ?z ?y) (min ?y ?x)) ==> 0", + "(< (- ?x ?y) ?z) ==> (< ?x (+ ?z ?y))", + "(< (+ (- ?x ?y) ?z) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ ?z (- ?x ?y)) ?w) ==> (< (+ ?x ?z) (+ ?y ?w))", + "(< (+ (+ (- ?x ?y) ?z) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ (+ ?z (- ?x ?y)) ?u) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ (- ?x ?y) ?z)) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< (+ ?u (+ ?z (- ?x ?y))) ?w) ==> (< (+ (+ ?x ?z) ?u) (+ ?w ?y))", + "(< ?w (+ (+ (- ?x ?y) ?z) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ (+ ?z (- ?x ?y)) ?u)) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ (- ?x ?y) ?z))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< ?w (+ ?u (+ ?z (- ?x ?y)))) ==> (< (+ ?w ?y) (+ (+ ?x ?z) ?u))", + "(< (min ?x ?y) ?x) ==> (< ?y ?x)", + "(< (min ?y ?x) ?x) ==> (< ?y ?x)", + "(< ?x (max ?x ?y)) ==> (< ?x ?y)", + "(< ?x (max ?y ?x)) ==> (< ?x ?y)", + "(< (min ?z ?y) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?z ?y) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (min ?y ?z) (min ?x ?y)) ==> (< ?z (min ?x ?y))", + "(< (min ?y ?z) (min ?y ?x)) ==> (< ?z (min ?y ?x))", + "(< (max ?z ?y) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?z ?y) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?x ?y)) ==> (< (max ?z ?y) ?x)", + "(< (max ?y ?z) (max ?y ?x)) ==> (< (max ?z ?y) ?x)", + "(* ?x (* ?y ?c0)) ==> (* (* ?x ?y) ?c0)", + "(* ?x (select ?y 1 0)) ==> (select ?y ?x 0)", + "(* (select ?x 1 0) ?y) ==> (select ?x ?y 0)", + "(select 1 ?x ?y) ==> ?x", + "(select 0 ?x ?y) ==> ?y", + "(select ?x ?y ?y) ==> ?y", + "(select (!= ?x ?y) ?z ?w) ==> (select (== ?x ?y) ?w ?z)", + "(select (<= ?x ?y) ?z ?w) ==> (select (< ?y ?x) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?z) ==> (select (&& ?x (! ?y)) ?w ?z)", + "(select ?x (select ?y ?z ?w) ?w) ==> (select (&& ?x ?y) ?z ?w)", + "(select ?x ?y (select ?z ?y ?w)) ==> (select (|| ?x ?z) ?y ?w)", + "(select ?x ?y (select ?z ?w ?y)) ==> (select (|| ?x (! ?z)) ?y ?w)", + "(select ?x (select ?x ?y ?z) ?w) ==> (select ?x ?y ?w)", + "(select ?x ?y (select ?x ?z ?w)) ==> (select ?x ?y ?w)", + "(select ?x (+ ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?y ?w)) ==> (+ ?y (select ?x ?z ?w))", + "(select ?x (+ ?z ?y) (+ ?w ?y)) ==> (+ (select ?x ?z ?w) ?y)", + "(select ?x (- ?y ?z) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?y ?z) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (- ?y ?z) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z) ?w))", + "(select ?x (+ ?z ?y) (- ?y ?w)) ==> (+ ?y (select ?x ?z (- ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?y ?z) ?u) (+ ?w ?y)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?y ?z)) (+ ?w ?y)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?y ?z) (+ (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?y ?z) (- (+ ?w ?y) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?y ?z) (+ ?u (+ ?w ?y))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?z ?u) ?w))", + "(select ?x (- (+ ?z ?y) ?u) (+ ?y ?w)) ==> (+ ?y (select ?x (- ?z ?u) ?w))", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?y ?w)) ==> (+ ?y (select ?x (+ ?u ?z) ?w))", + "(select ?x (+ ?z ?y) (+ (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (+ ?w ?u)))", + "(select ?x (+ ?z ?y) (- (+ ?y ?w) ?u)) ==> (+ ?y (select ?x ?z (- ?w ?u)))", + "(select ?x (+ ?z ?y) (+ ?u (+ ?y ?w))) ==> (+ ?y (select ?x ?z (+ ?u ?w)))", + "(select ?x (+ (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (+ ?z ?u) ?w) ?y)", + "(select ?x (- (+ ?z ?y) ?u) (+ ?w ?y)) ==> (+ (select ?x (- ?z ?u) ?w) ?y)", + "(select ?x (+ ?u (+ ?z ?y)) (+ ?w ?y)) ==> (+ (select ?x (+ ?u ?z) ?w) ?y)", + "(select ?x (+ ?z ?y) (+ (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (+ ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (- (+ ?w ?y) ?u)) ==> (+ (select ?x ?z (- ?w ?u)) ?y)", + "(select ?x (+ ?z ?y) (+ ?u (+ ?w ?y))) ==> (+ (select ?x ?z (+ ?u ?w)) ?y)", + "(select ?x (+ ?y (- ?z ?w)) (- ?u ?w)) ==> (- (select ?x (+ ?y ?z) ?u) ?w)", + "(select ?x (+ (- ?y ?z) ?w) (- ?u ?z)) ==> (- (select ?x (+ ?w ?y) ?u) ?z)", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (- ?y ?z) ?w) (+ (+ ?u ?y) ?v)) ==> (+ ?y (select ?x (- ?w ?z) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?w))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?w ?v))) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?w) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?w ?u) ?v)) ==> (+ ?w (select ?x (+ ?z ?y) (+ ?v ?u)))", + "(select ?x (+ ?y (+ ?z ?w)) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?y))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?v ?z))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?y ?v))) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ ?u (+ ?z ?v))) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?u ?z) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?u ?v)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?y ?u) ?v)) ==> (+ ?y (select ?x (+ ?z ?w) (+ ?v ?u)))", + "(select ?x (+ (+ ?y ?z) ?w) (+ (+ ?z ?u) ?v)) ==> (+ ?z (select ?x (+ ?y ?w) (+ ?v ?u)))", + "(select (< ?x ?y) ?x ?y) ==> (min ?x ?y)", + "(max (max ?x ?c0) ?y) ==> (max (max ?x ?y) ?c0)", + "(max (max ?x ?y) (max ?z ?w)) ==> (max (max (max ?x ?y) ?z) ?w)", + "(max (max ?x (min ?y ?z)) ?y) ==> (max ?x ?y)", + "(max (max ?x (min ?y ?z)) ?z) ==> (max ?x ?z)", + "(max (max (min ?x ?y) ?z) ?x) ==> (max ?z ?x)", + "(max (max (min ?x ?y) ?z) ?y) ==> (max ?z ?y)", + "(max ?x (max ?y (min ?x ?z))) ==> (max ?y ?x)", + "(max ?x (max ?y (min ?z ?x))) ==> (max ?y ?x)", + "(max ?x (max (min ?x ?y) ?z)) ==> (max ?x ?z)", + "(max ?x (max (min ?y ?x) ?z)) ==> (max ?x ?z)", + "(== (* ?x ?y) 0) ==> (|| (== ?x 0) (== ?y 0))", + "(== (min ?x 0) 0) ==> (<= 0 ?x)", + "(== (- ?c0 ?x) 0) ==> (== ?x ?c0)", + "(== (- ?x ?y) 0) ==> (== ?x ?y)", + "(== ?x 0) ==> (== ?x 0)", + "(/ ?x ?x) ==> (select (== ?x 0) 0 1)", + "(&& (|| ?x (&& ?y ?z)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& (|| ?x (&& ?z ?y)) ?y) ==> (&& (|| ?x ?z) ?y)", + "(&& ?y (|| ?x (&& ?y ?z))) ==> (&& ?y (|| ?x ?z))", + "(&& ?y (|| ?x (&& ?z ?y))) ==> (&& ?y (|| ?x ?z))", + "(&& (|| (&& ?y ?z) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& (|| (&& ?z ?y) ?x) ?y) ==> (&& (|| ?z ?x) ?y)", + "(&& ?y (|| (&& ?y ?z) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& ?y (|| (&& ?z ?y) ?x)) ==> (&& ?y (|| ?z ?x))", + "(&& (&& ?x (|| ?y ?z)) ?y) ==> (&& ?x ?y)", + "(&& (&& ?x (|| ?z ?y)) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& ?x (|| ?y ?z))) ==> (&& ?y ?x)", + "(&& ?y (&& ?x (|| ?z ?y))) ==> (&& ?y ?x)", + "(&& (&& (|| ?y ?z) ?x) ?y) ==> (&& ?x ?y)", + "(&& (&& (|| ?z ?y) ?x) ?y) ==> (&& ?x ?y)", + "(&& ?y (&& (|| ?y ?z) ?x)) ==> (&& ?y ?x)", + "(&& ?y (&& (|| ?z ?y) ?x)) ==> (&& ?y ?x)", + "(&& (|| ?x ?y) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?x ?y) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?x ?z)) ==> (|| ?x (&& ?y ?z))", + "(&& (|| ?y ?x) (|| ?z ?x)) ==> (|| ?x (&& ?y ?z))", + "(&& (< ?x ?y) (< ?x ?z)) ==> (< ?x (min ?y ?z))", + "(&& (< ?y ?x) (< ?z ?x)) ==> (< (max ?y ?z) ?x)", + "(&& (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (min ?y ?z))", + "(- (+ ?x ?c0) ?y) ==> (+ (- ?x ?y) ?c0)", + "(- ?x (- ?y ?z)) ==> (+ ?x (- ?z ?y))", + "(- ?x (+ ?y ?c0)) ==> (- (- ?x ?y) ?c0)", + "(|| (|| ?z (!= ?x ?y)) (== ?x ?y)) ==> 1", + "(|| (|| ?z (!= ?x ?y)) (== ?y ?x)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?x ?y)) ==> 1", + "(|| (|| (!= ?x ?y) ?z) (== ?y ?x)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?x ?y)) ==> 1", + "(|| (|| ?z (== ?x ?y)) (!= ?y ?x)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?x ?y)) ==> 1", + "(|| (|| (== ?x ?y) ?z) (!= ?y ?x)) ==> 1", + "(|| (&& ?x (|| ?y ?z)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| (&& ?x (|| ?z ?y)) ?y) ==> (|| (&& ?x ?z) ?y)", + "(|| ?y (&& ?x (|| ?y ?z))) ==> (|| ?y (&& ?x ?z))", + "(|| ?y (&& ?x (|| ?z ?y))) ==> (|| ?y (&& ?x ?z))", + "(|| (&& (|| ?y ?z) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| (&& (|| ?z ?y) ?x) ?y) ==> (|| (&& ?z ?x) ?y)", + "(|| ?y (&& (|| ?y ?z) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| ?y (&& (|| ?z ?y) ?x)) ==> (|| ?y (&& ?z ?x))", + "(|| (|| ?x (&& ?y ?z)) ?y) ==> (|| ?x ?y)", + "(|| (|| ?x (&& ?z ?y)) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| ?x (&& ?y ?z))) ==> (|| ?y ?x)", + "(|| ?y (|| ?x (&& ?z ?y))) ==> (|| ?y ?x)", + "(|| (|| (&& ?y ?z) ?x) ?y) ==> (|| ?x ?y)", + "(|| (|| (&& ?z ?y) ?x) ?y) ==> (|| ?x ?y)", + "(|| ?y (|| (&& ?y ?z) ?x)) ==> (|| ?y ?x)", + "(|| ?y (|| (&& ?z ?y) ?x)) ==> (|| ?y ?x)", + "(|| (&& ?x ?y) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?x ?y) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?x ?z)) ==> (&& ?x (|| ?y ?z))", + "(|| (&& ?y ?x) (&& ?z ?x)) ==> (&& ?x (|| ?y ?z))", + "(|| (< ?x ?y) (< ?x ?z)) ==> (< ?x (max ?y ?z))", + "(|| (< ?y ?x) (< ?z ?x)) ==> (< (min ?y ?z) ?x)", + "(|| (<= ?x ?y) (<= ?x ?z)) ==> (<= ?x (max ?y ?z))", + "(|| (<= ?y ?x) (<= ?z ?x)) ==> (<= (min ?y ?z) ?x)", + "(+ ?x ?x) ==> (* ?x 2)", + "(+ (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (+ ?y ?w) (+ ?z ?u))", + "(+ (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (+ (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (select ?x ?y ?z) (- (select ?x ?u ?v) ?w)) ==> (- (select ?x (+ ?y ?u) (+ ?z ?v)) ?w)", + "(+ (+ ?x ?c0) ?y) ==> (+ (+ ?x ?y) ?c0)", + "(+ ?x (+ ?y ?c0)) ==> (+ (+ ?x ?y) ?c0)", + "(+ (- ?c0 ?x) ?y) ==> (+ (- ?y ?x) ?c0)", + "(+ ?x (- ?c0 ?y)) ==> (+ (- ?x ?y) ?c0)", + "(min ?x ?x) ==> ?x", + "(min (min ?x ?c0) ?y) ==> (min (min ?x ?y) ?c0)", + "(min (min ?x ?y) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?x ?z)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?y ?x) (min ?z ?x)) ==> (min (min ?y ?z) ?x)", + "(min (min ?x ?y) (min ?z ?w)) ==> (min (min (min ?x ?y) ?z) ?w)", + "(max ?c0 ?x) ==> (max ?x ?c0)", + "(max ?x (max ?y ?c0)) ==> (max (max ?x ?y) ?c0)", + "(min ?c0 ?x) ==> (min ?x ?c0)", + "(min ?x (min ?y ?c0)) ==> (min (min ?x ?y) ?c0)" + ], + "cannot": [ + "(! (< ?x ?y)) ==> (<= ?y ?x)", + "(! (! ?x)) ==> ?x", + "(< ?x ?x) ==> 0", + "(< (max ?x ?y) ?x) ==> 0", + "(< (max ?y ?x) ?x) ==> 0", + "(< (max ?y ?z) (min ?x ?y)) ==> 0", + "(< (max ?y ?z) (min ?y ?x)) ==> 0", + "(< ?z (- ?x ?y)) ==> (< (+ ?z ?y) ?x)", + "(< ?w (+ (- ?x ?y) ?z)) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?w (+ ?z (- ?x ?y))) ==> (< (+ ?w ?y) (+ ?x ?z))", + "(< ?x (+ ?x ?y)) ==> (< 0 ?y)", + "(< ?x (+ ?y ?x)) ==> (< 0 ?y)", + "(< (+ ?x ?y) ?x) ==> (< ?y 0)", + "(< (+ ?y ?x) ?x) ==> (< ?y 0)", + "(< ?x (+ (+ ?x ?y) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ (+ ?y ?x) ?z)) ==> (< 0 (+ ?y ?z))", + "(< ?x (+ ?z (+ ?x ?y))) ==> (< 0 (+ ?z ?y))", + "(< ?x (+ ?z (+ ?y ?x))) ==> (< 0 (+ ?z ?y))", + "(< (+ (+ ?x ?y) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ (+ ?y ?x) ?z) ?x) ==> (< (+ ?y ?z) 0)", + "(< (+ ?z (+ ?x ?y)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?z (+ ?y ?x)) ?x) ==> (< (+ ?z ?y) 0)", + "(< (+ ?x ?y) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?x ?y) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?x ?z)) ==> (< ?y ?z)", + "(< (+ ?y ?x) (+ ?z ?x)) ==> (< ?y ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?x ?z)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?x ?y) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ (+ ?y ?x) ?w) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?x ?y)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?w (+ ?y ?x)) (+ ?z ?x)) ==> (< (+ ?y ?w) ?z)", + "(< (+ ?x ?z) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?x ?z) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?x ?y) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ (+ ?y ?x) ?w)) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?x ?y))) ==> (< ?z (+ ?y ?w))", + "(< (+ ?z ?x) (+ ?w (+ ?y ?x))) ==> (< ?z (+ ?y ?w))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?x ?z) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ (+ ?z ?x) ?u)) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?x ?y) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ (+ ?y ?x) ?w) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?x ?z))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?x ?y)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(< (+ ?w (+ ?y ?x)) (+ ?u (+ ?z ?x))) ==> (< (+ ?y ?w) (+ ?z ?u))", + "(* 0 ?x) ==> 0", + "(* 1 ?x) ==> ?x", + "(* ?x 0) ==> 0", + "(* ?x 1) ==> ?x", + "(* (- 0 ?x) ?y) ==> (- 0 (* ?x ?y))", + "(* ?x (- 0 ?y)) ==> (- 0 (* ?x ?y))", + "(* (max ?x ?y) (min ?x ?y)) ==> (* ?x ?y)", + "(* (max ?x ?y) (min ?y ?x)) ==> (* ?y ?x)", + "(select ?x (- ?y ?z) (- ?y ?w)) ==> (- ?y (select ?x ?z ?w))", + "(select ?x (- ?z ?y) (- ?w ?y)) ==> (- (select ?x ?z ?w) ?y)", + "(select ?x (* ?y ?z) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?y ?z) (* ?w ?y)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?y ?w)) ==> (* ?y (select ?x ?z ?w))", + "(select ?x (* ?z ?y) (* ?w ?y)) ==> (* (select ?x ?z ?w) ?y)", + "(select ?x (- 0 (* ?y ?z)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?y ?z)) (* ?w ?y)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?y ?w)) ==> (* ?y (select ?x (- 0 ?z) ?w))", + "(select ?x (- 0 (* ?z ?y)) (* ?w ?y)) ==> (* (select ?x (- 0 ?z) ?w) ?y)", + "(select ?x (* ?y ?z) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?y ?z) (- 0 (* ?w ?y))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?y ?w))) ==> (* ?y (select ?x ?z (- 0 ?w)))", + "(select ?x (* ?z ?y) (- 0 (* ?w ?y))) ==> (* (select ?x ?z (- 0 ?w)) ?y)", + "(select ?x (/ ?z ?y) (/ ?w ?y)) ==> (/ (select ?x ?z ?w) ?y)", + "(select ?x (+ (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (+ (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (+ ?z ?u) 0))", + "(select ?x (- (+ ?y ?z) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (- (+ ?z ?y) ?u) ?y) ==> (+ ?y (select ?x (- ?z ?u) 0))", + "(select ?x (+ ?u (+ ?y ?z)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x (+ ?u (+ ?z ?y)) ?y) ==> (+ ?y (select ?x (+ ?u ?z) 0))", + "(select ?x ?y (+ (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (+ (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (+ ?z ?u)))", + "(select ?x ?y (- (+ ?y ?z) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (- (+ ?z ?y) ?u)) ==> (+ ?y (select ?x 0 (- ?z ?u)))", + "(select ?x ?y (+ ?u (+ ?y ?z))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x ?y (+ ?u (+ ?z ?y))) ==> (+ ?y (select ?x 0 (+ ?u ?z)))", + "(select ?x (select ?y ?z ?w) (select ?y ?u ?w)) ==> (select ?y (select ?x ?z ?u) ?w)", + "(select ?x (select ?y ?z ?w) (select ?y ?z ?u)) ==> (select ?y ?z (select ?x ?w ?u))", + "(select (< ?x ?y) ?y ?x) ==> (max ?x ?y)", + "(select (< ?x 0) (* ?x ?y) 0) ==> (* (min ?x 0) ?y)", + "(select (< ?x 0) 0 (* ?x ?y)) ==> (* (max ?x 0) ?y)", + "(select ?x (min ?y ?w) (min ?z ?w)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?y ?w) (min ?w ?z)) ==> (min (select ?x ?y ?z) ?w)", + "(select ?x (min ?w ?y) (min ?z ?w)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (min ?w ?y) (min ?w ?z)) ==> (min ?w (select ?x ?y ?z))", + "(select ?x (max ?y ?w) (max ?z ?w)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?y ?w) (max ?w ?z)) ==> (max (select ?x ?y ?z) ?w)", + "(select ?x (max ?w ?y) (max ?z ?w)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (max ?w ?y) (max ?w ?z)) ==> (max ?w (select ?x ?y ?z))", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?w ?z)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?w ?z) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?w ?z))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?w ?z) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?u ?z)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?u ?z)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?u ?z) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?u ?z) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (min ?z ?w)) (min ?z ?u)) ==> (min (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (min ?z ?w) ?z) (min ?z ?u)) ==> (min (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (min ?z ?u) (select ?y ?z (min ?z ?w))) ==> (min (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (min ?z ?u) (select ?y (min ?z ?w) ?z)) ==> (min (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?w ?z)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?w ?z) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?w ?z))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?w ?z) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?u ?z)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?u ?z)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?u ?z) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?u ?z) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (select ?y ?z (max ?z ?w)) (max ?z ?u)) ==> (max (select ?x (select ?y ?z ?w) ?u) ?z)", + "(select ?x (select ?y (max ?z ?w) ?z) (max ?z ?u)) ==> (max (select ?x (select ?y ?w ?z) ?u) ?z)", + "(select ?x (max ?z ?u) (select ?y ?z (max ?z ?w))) ==> (max (select ?x ?u (select ?y ?z ?w)) ?z)", + "(select ?x (max ?z ?u) (select ?y (max ?z ?w) ?z)) ==> (max (select ?x ?u (select ?y ?w ?z)) ?z)", + "(select ?x (+ ?y ?z) ?y) ==> (+ ?y (select ?x ?z 0))", + "(select ?x ?y (+ ?y ?z)) ==> (+ ?y (select ?x 0 ?z))", + "(select ?x ?y 0) ==> (&& ?x ?y)", + "(select ?x ?y 1) ==> (|| (! ?x) ?y)", + "(select ?x 0 ?y) ==> (&& (! ?x) ?y)", + "(select ?x 1 ?y) ==> (|| ?x ?y)", + "(max ?x ?x) ==> ?x", + "(max (select ?x (max ?z ?y) ?w) ?z) ==> (max (select ?x ?y ?w) ?z)", + "(max (select ?x (max ?z ?y) ?w) ?y) ==> (max (select ?x ?z ?w) ?y)", + "(max (select ?x ?w (max ?z ?y)) ?z) ==> (max (select ?x ?w ?y) ?z)", + "(max (select ?x ?w (max ?z ?y)) ?y) ==> (max (select ?x ?w ?z) ?y)", + "(max (max ?x ?y) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?x ?z)) ==> (max (max ?y ?z) ?x)", + "(max (max ?x ?y) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (max ?y ?x) (max ?z ?x)) ==> (max (max ?y ?z) ?x)", + "(max (min ?x ?y) (min ?x ?z)) ==> (min ?x (max ?y ?z))", + "(max (min ?x ?y) (min ?z ?x)) ==> (min ?x (max ?y ?z))", + "(max (min ?y ?x) (min ?x ?z)) ==> (min (max ?y ?z) ?x)", + "(max (min ?y ?x) (min ?z ?x)) ==> (min (max ?y ?z) ?x)", + "(max (min (max ?x ?y) ?z) ?y) ==> (max (min ?x ?z) ?y)", + "(max (min (max ?y ?x) ?z) ?y) ==> (max ?y (min ?x ?z))", + "(max (select ?x (min ?y ?z) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max (select ?x (min ?z ?y) ?w) ?z) ==> (select ?x ?z (max ?w ?z))", + "(max ?z (select ?x (min ?y ?z) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max ?z (select ?x (min ?z ?y) ?w)) ==> (select ?x ?z (max ?z ?w))", + "(max (select ?x ?y (min ?w ?z)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max (select ?x ?y (min ?z ?w)) ?z) ==> (select ?x (max ?y ?z) ?z)", + "(max ?z (select ?x ?y (min ?w ?z))) ==> (select ?x (max ?z ?y) ?z)", + "(max ?z (select ?x ?y (min ?z ?w))) ==> (select ?x (max ?z ?y) ?z)", + "(max (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (max ?y ?w) (max ?z ?u))", + "(max (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (max ?y ?z))", + "(max (+ ?y ?x) (+ ?x ?z)) ==> (+ (max ?y ?z) ?x)", + "(max (+ ?y ?x) (+ ?z ?x)) ==> (+ (max ?y ?z) ?x)", + "(max ?x (+ ?x ?z)) ==> (+ ?x (max ?z 0))", + "(max ?x (+ ?z ?x)) ==> (+ ?x (max ?z 0))", + "(max (+ ?y ?x) ?x) ==> (+ (max ?y 0) ?x)", + "(max (+ ?x ?y) ?x) ==> (+ ?x (max ?y 0))", + "(max (max (+ ?x ?y) ?z) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?x ?w)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?x ?y) ?z) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max ?z (+ ?x ?y)) (+ ?w ?x)) ==> (max (+ ?x (max ?y ?w)) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?x ?w)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max (+ ?y ?x) ?z) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (max ?z (+ ?y ?x)) (+ ?w ?x)) ==> (max (+ (max ?y ?w) ?x) ?z)", + "(max (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (max (+ ?w ?y) ?z))", + "(max (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (max (+ ?w ?y) ?z) ?x)", + "(max (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (max (+ ?w ?y) 0))", + "(max (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) ?y))", + "(max (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (max (+ ?w ?z) ?y) ?x)", + "(max ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (max (+ ?w ?z) 0))", + "(max (- ?y ?x) (- ?z ?x)) ==> (- (max ?y ?z) ?x)", + "(max (- ?x ?y) (- ?x ?z)) ==> (- ?x (min ?y ?z))", + "(max (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (max ?x (+ ?z ?w)) ?y)", + "(max (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (max ?x (+ ?w ?z)) ?y)", + "(max ?x (- ?x ?y)) ==> (- ?x (min ?y 0))", + "(max (- ?x ?y) ?x) ==> (- ?x (min ?y 0))", + "(max ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (+ ?z (- ?x ?y))) ==> (+ ?x (max (- ?z ?y) 0))", + "(max ?x (- (- ?x ?y) ?z)) ==> (- ?x (min (+ ?y ?z) 0))", + "(max (+ (- ?x ?y) ?z) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (+ ?z (- ?x ?y)) ?x) ==> (+ (max (- ?z ?y) 0) ?x)", + "(max (- (- ?x ?y) ?z) ?x) ==> (- ?x (min (+ ?y ?z) 0))", + "(== ?x 1) ==> ?x", + "(== ?x 0) ==> (! ?x)", + "(== (select ?x 0 ?y) 0) ==> (|| ?x (== ?y 0))", + "(== (select ?x ?y 0) 0) ==> (|| (! ?x) (== ?y 0))", + "(== (- (max ?x ?y) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?x ?y) ?y) 0) ==> (<= ?y ?x)", + "(== (- (max ?y ?x) ?y) 0) ==> (<= ?x ?y)", + "(== (- (min ?y ?x) ?y) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?x ?y)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?x ?y)) 0) ==> (<= ?y ?x)", + "(== (- ?y (max ?y ?x)) 0) ==> (<= ?x ?y)", + "(== (- ?y (min ?y ?x)) 0) ==> (<= ?y ?x)", + "(== (max ?x 0) 0) ==> (<= ?x 0)", + "(/ ?x 1) ==> ?x", + "(/ ?x 0) ==> 0", + "(/ ?x ?x) ==> 1", + "(/ 0 ?x) ==> 0", + "(/ (- (* ?x ?c0) ?y) ?c0) ==> (+ ?x (/ (- 0 ?y) ?c0))", + "(/ (- (- (* ?x ?c0) ?y) ?z) ?c0) ==> (+ ?x (/ (- (- 0 ?y) ?z) ?c0))", + "(/ (+ ?x ?y) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (+ ?y ?x) ?x) ==> (+ (/ ?y ?x) 1)", + "(/ (- ?x ?y) ?x) ==> (+ (/ (- ?y) ?x) 1)", + "(/ (- ?y ?x) ?x) ==> (- (/ ?y ?x) 1)", + "(/ (+ (+ ?x ?y) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ (+ ?y ?x) ?z) ?x) ==> (+ (/ (+ ?y ?z) ?x) 1)", + "(/ (+ ?z (+ ?x ?y)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (+ ?z (+ ?y ?x)) ?x) ==> (+ (/ (+ ?z ?y) ?x) 1)", + "(/ (* ?x ?y) ?x) ==> ?y", + "(/ (* ?y ?x) ?x) ==> ?y", + "(/ (+ (* ?x ?y) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ (* ?y ?x) ?z) ?x) ==> (+ ?y (/ ?z ?x))", + "(/ (+ ?z (* ?x ?y)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (+ ?z (* ?y ?x)) ?x) ==> (+ (/ ?z ?x) ?y)", + "(/ (- (* ?x ?y) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- (* ?y ?x) ?z) ?x) ==> (+ ?y (/ (- ?z) ?x))", + "(/ (- ?z (* ?x ?y)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ (- ?z (* ?y ?x)) ?x) ==> (- (/ ?z ?x) ?y)", + "(/ ?x -1) ==> (- ?x)", + "(&& (!= ?x ?y) (== ?x ?y)) ==> 0", + "(&& (!= ?x ?y) (== ?y ?x)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?x ?y)) ==> 0", + "(&& (&& ?z (!= ?x ?y)) (== ?y ?x)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?x ?y)) ==> 0", + "(&& (&& (!= ?x ?y) ?z) (== ?y ?x)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?x ?y)) ==> 0", + "(&& (&& ?z (== ?x ?y)) (!= ?y ?x)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?x ?y)) ==> 0", + "(&& (&& (== ?x ?y) ?z) (!= ?y ?x)) ==> 0", + "(&& ?x (! ?x)) ==> 0", + "(&& (! ?x) ?x) ==> 0", + "(&& (<= ?y ?x) (< ?x ?y)) ==> 0", + "(&& (<= ?y ?x) (<= ?z ?x)) ==> (<= (max ?y ?z) ?x)", + "(- ?x 0) ==> ?x", + "(- ?x ?x) ==> 0", + "(- (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (- ?y ?w) (- ?z ?u))", + "(- (select ?x ?y ?z) ?y) ==> (select ?x 0 (- ?z ?y))", + "(- (select ?x ?y ?z) ?z) ==> (select ?x (- ?y ?z) 0)", + "(- ?y (select ?x ?y ?z)) ==> (select ?x 0 (- ?y ?z))", + "(- ?z (select ?x ?y ?z)) ==> (select ?x (- ?z ?y) 0)", + "(- (select ?x (+ ?y ?w) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x (+ ?w ?y) ?z) ?y) ==> (select ?x ?w (- ?z ?y))", + "(- (select ?x ?y (+ ?z ?w)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x ?y (+ ?w ?z)) ?z) ==> (select ?x (- ?y ?z) ?w)", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?w) ==> (select ?x (+ ?y ?z) (- ?u ?w))", + "(- (select ?x (+ ?y (+ ?z ?w)) ?u) ?z) ==> (select ?x (+ ?y ?w) (- ?u ?z))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?y) ==> (select ?x (+ ?w ?z) (- ?u ?y))", + "(- (select ?x (+ (+ ?y ?z) ?w) ?u) ?z) ==> (select ?x (+ ?w ?y) (- ?u ?z))", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?y)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?u ?z)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?y ?u)) ==> (- (select ?x ?z (- ?w ?y)) ?u)", + "(- (select ?x (+ ?y ?z) ?w) (+ ?z ?u)) ==> (- (select ?x ?y (- ?w ?z)) ?u)", + "(- ?y (select ?x (+ ?y ?w) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?y (select ?x (+ ?w ?y) ?z)) ==> (- 0 (select ?x ?w (- ?z ?y)))", + "(- ?z (select ?x ?y (+ ?z ?w))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- ?z (select ?x ?y (+ ?w ?z))) ==> (- 0 (select ?x (- ?y ?z) ?w))", + "(- (+ ?x ?y) ?x) ==> ?y", + "(- (+ ?x ?y) ?y) ==> ?x", + "(- ?x (+ ?x ?y)) ==> (- ?y)", + "(- ?y (+ ?x ?y)) ==> (- ?x)", + "(- (- ?x ?y) ?x) ==> (- ?y)", + "(- (+ (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (+ ?w (select ?x ?y ?z)) (select ?x ?u ?v)) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ (select ?x ?u ?v) ?w)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (select ?x ?y ?z) (+ ?w (select ?x ?u ?v))) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (- (select ?x ?y ?z) ?w) (select ?x ?u ?v)) ==> (- (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(- (* ?x ?y) (* ?z ?y)) ==> (* (- ?x ?z) ?y)", + "(- (* ?x ?y) (* ?y ?z)) ==> (* (- ?x ?z) ?y)", + "(- (* ?y ?x) (* ?z ?y)) ==> (* ?y (- ?x ?z))", + "(- (* ?y ?x) (* ?y ?z)) ==> (* ?y (- ?x ?z))", + "(- (+ ?u (* ?x ?y)) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?x ?y)) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ ?u (* ?y ?x)) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ ?u (* ?y ?x)) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- ?u (* ?x ?y)) (* ?z ?y)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?x ?y)) (* ?y ?z)) ==> (- ?u (* (+ ?x ?z) ?y))", + "(- (- ?u (* ?y ?x)) (* ?z ?y)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (- ?u (* ?y ?x)) (* ?y ?z)) ==> (- ?u (* ?y (+ ?x ?z)))", + "(- (+ (* ?x ?y) ?u) (* ?z ?y)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?x ?y) ?u) (* ?y ?z)) ==> (+ ?u (* (- ?x ?z) ?y))", + "(- (+ (* ?y ?x) ?u) (* ?z ?y)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (+ (* ?y ?x) ?u) (* ?y ?z)) ==> (+ ?u (* ?y (- ?x ?z)))", + "(- (- (* ?x ?y) ?u) (* ?z ?y)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?x ?y) ?u) (* ?y ?z)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (- (* ?y ?x) ?u) (* ?z ?y)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (- (* ?y ?x) ?u) (* ?y ?z)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (+ ?u (* ?z ?y))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ ?u (* ?y ?z))) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ ?u (* ?z ?y))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ ?u (* ?y ?z))) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- ?u (* ?z ?y))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- ?u (* ?y ?z))) ==> (- (* (+ ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- ?u (* ?z ?y))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?y ?x) (- ?u (* ?y ?z))) ==> (- (* ?y (+ ?x ?z)) ?u)", + "(- (* ?x ?y) (+ (* ?z ?y) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (+ (* ?y ?z) ?u)) ==> (- (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (+ (* ?z ?y) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (+ (* ?y ?z) ?u)) ==> (- (* ?y (- ?x ?z)) ?u)", + "(- (* ?x ?y) (- (* ?z ?y) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?x ?y) (- (* ?y ?z) ?u)) ==> (+ (* (- ?x ?z) ?y) ?u)", + "(- (* ?y ?x) (- (* ?z ?y) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (* ?y ?x) (- (* ?y ?z) ?u)) ==> (+ (* ?y (- ?x ?z)) ?u)", + "(- (+ ?x ?y) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?x ?y) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?x ?z)) ==> (- ?y ?z)", + "(- (+ ?y ?x) (+ ?z ?x)) ==> (- ?y ?z)", + "(- (+ (+ ?x ?y) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ (+ ?y ?x) ?z) ?x) ==> (+ ?y ?z)", + "(- (+ ?z (+ ?x ?y)) ?x) ==> (+ ?z ?y)", + "(- (+ ?z (+ ?y ?x)) ?x) ==> (+ ?z ?y)", + "(- ?x (+ ?y (- ?x ?z))) ==> (- ?z ?y)", + "(- ?x (+ (- ?x ?y) ?z)) ==> (- ?y ?z)", + "(- (+ ?x (- ?y ?z)) ?y) ==> (- ?x ?z)", + "(- (+ (- ?x ?y) ?z) ?x) ==> (- ?z ?y)", + "(- ?x (+ ?y (+ ?x ?z))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ ?y (+ ?z ?x))) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?x ?y) ?z)) ==> (- 0 (+ ?y ?z))", + "(- ?x (+ (+ ?y ?x) ?z)) ==> (- 0 (+ ?y ?z))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?x))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?w ?y))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?x ?w))) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ ?z (+ ?y ?w))) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?x ?z) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?y ?z) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?x) ?w)) ==> (- ?y (+ ?z ?w))", + "(- (+ ?x ?y) (+ (+ ?z ?y) ?w)) ==> (- ?x (+ ?z ?w))", + "(- (- ?x ?y) (+ ?x ?z)) ==> (- (- 0 ?y) ?z)", + "(- (- ?x ?y) (+ ?z ?x)) ==> (- (- 0 ?y) ?z)", + "(- (- (+ ?x ?y) ?z) ?x) ==> (- ?y ?z)", + "(- (- (+ ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(- ?x (min (- ?x ?y) 0)) ==> (max ?x ?y)", + "(- ?x (max (- ?x ?y) 0)) ==> (min ?x ?y)", + "(- (+ ?x ?y) (min ?x ?y)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (min ?y ?x)) ==> (max ?y ?x)", + "(- (+ ?x ?y) (max ?x ?y)) ==> (min ?y ?x)", + "(- (+ ?x ?y) (max ?y ?x)) ==> (min ?x ?y)", + "(- 0 (+ ?x (- ?y ?z))) ==> (- ?z (+ ?x ?y))", + "(- 0 (+ (- ?x ?y) ?z)) ==> (- ?y (+ ?x ?z))", + "(- (- (- ?x ?y) ?z) ?x) ==> (- 0 (+ ?y ?z))", + "(- (max ?x ?y) ?x) ==> (max (- ?y ?x) 0)", + "(- (min ?x ?y) ?x) ==> (min (- ?y ?x) 0)", + "(- (max ?x ?y) ?y) ==> (max (- ?x ?y) 0)", + "(- (min ?x ?y) ?y) ==> (min (- ?x ?y) 0)", + "(- ?x (min ?y (- ?x ?z))) ==> (max (- ?x ?y) ?z)", + "(- ?x (min (- ?x ?y) ?z)) ==> (max ?y (- ?x ?z))", + "(- ?x (max ?y (- ?x ?z))) ==> (min (- ?x ?y) ?z)", + "(- ?x (max (- ?x ?y) ?z)) ==> (min ?y (- ?x ?z))", + "(- (min (- ?x ?y) 0) ?x) ==> (- 0 (max ?x ?y))", + "(- (max (- ?x ?y) 0) ?x) ==> (- 0 (min ?x ?y))", + "(- (min ?x ?y) (+ ?x ?y)) ==> (- 0 (max ?y ?x))", + "(- (min ?x ?y) (+ ?y ?x)) ==> (- 0 (max ?x ?y))", + "(- (max ?x ?y) (+ ?x ?y)) ==> (- 0 (min ?x ?y))", + "(- (max ?x ?y) (+ ?y ?x)) ==> (- 0 (min ?y ?x))", + "(- (* ?x ?y) ?x) ==> (* ?x (- ?y 1))", + "(- (* ?x ?y) ?y) ==> (* (- ?x 1) ?y)", + "(- ?x (* ?x ?y)) ==> (* ?x (- 1 ?y))", + "(- ?x (* ?y ?x)) ==> (* (- 1 ?y) ?x)", + "(- (min (+ ?x ?y) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min (+ ?y ?x) ?z) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?x ?y)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?z (+ ?y ?x)) ?x) ==> (min (- ?z ?x) ?y)", + "(- (min ?x (+ ?w (+ ?y ?z))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ ?w (+ ?z ?y))) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min ?x (+ (+ ?y ?z) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x (+ (+ ?z ?y) ?w)) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ ?w (+ ?y ?z)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ ?w (+ ?z ?y)) ?x) ?z) ==> (min (- ?x ?z) (+ ?w ?y))", + "(- (min (+ (+ ?y ?z) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min (+ (+ ?z ?y) ?w) ?x) ?z) ==> (min (- ?x ?z) (+ ?y ?w))", + "(- (min ?x ?y) (min ?y ?x)) ==> 0", + "(- (max (+ ?x ?y) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max (+ ?y ?x) ?z) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?x ?y)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?z (+ ?y ?x)) ?x) ==> (max (- ?z ?x) ?y)", + "(- (max ?x (+ ?w (+ ?y ?z))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ ?w (+ ?z ?y))) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max ?x (+ (+ ?y ?z) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x (+ (+ ?z ?y) ?w)) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ ?w (+ ?y ?z)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ ?w (+ ?z ?y)) ?x) ?z) ==> (max (- ?x ?z) (+ ?w ?y))", + "(- (max (+ (+ ?y ?z) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max (+ (+ ?z ?y) ?w) ?x) ?z) ==> (max (- ?x ?z) (+ ?y ?w))", + "(- (max ?x ?y) (max ?y ?x)) ==> 0", + "(- (+ (min (+ ?x ?y) ?z) ?w) ?x) ==> (+ (min (- ?z ?x) ?y) ?w)", + "(- (min (+ (+ ?x ?y) ?w) ?z) ?x) ==> (min (- ?z ?x) (+ ?y ?w))", + "(- (min (min (+ ?x ?z) ?y) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (min ?y (+ ?x ?z)) ?w) ?x) ==> (min (- (min ?y ?w) ?x) ?z)", + "(- (min (+ (* (+ ?x ?y) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(- (min (+ (* (+ ?y ?x) ?u) ?z) ?w) (* ?x ?u)) ==> (min (- ?w (* ?x ?u)) (+ (* ?y ?u) ?z))", + "(|| (!= ?x ?y) (== ?x ?y)) ==> 1", + "(|| (!= ?x ?y) (== ?y ?x)) ==> 1", + "(|| ?x (! ?x)) ==> 1", + "(|| (! ?x) ?x) ==> 1", + "(|| (<= ?y ?x) (< ?x ?y)) ==> 1", + "(+ ?x 0) ==> ?x", + "(+ 0 ?x) ==> ?x", + "(+ (select ?x ?y ?z) (- ?w (select ?x ?u ?v))) ==> (+ (select ?x (- ?y ?u) (- ?z ?v)) ?w)", + "(+ ?x (* ?y -1)) ==> (- ?x ?y)", + "(+ (* ?x -1) ?y) ==> (- ?y ?x)", + "(+ (max ?x (+ (* ?y ?c0) ?z)) (* (- ?u ?y) ?c0)) ==> (+ (max (- ?x (* ?y ?c0)) ?z) (* ?u ?c0))", + "(+ (- ?x ?y) ?y) ==> ?x", + "(+ ?x (- ?y ?x)) ==> ?y", + "(+ (+ (- ?x ?y) ?z) ?y) ==> (+ ?x ?z)", + "(+ (+ ?z (- ?x ?y)) ?y) ==> (+ ?z ?x)", + "(+ ?x (+ (- ?y ?x) ?z)) ==> (+ ?y ?z)", + "(+ ?x (+ ?z (- ?y ?x))) ==> (+ ?z ?y)", + "(+ (- ?x ?y) (- ?y ?z)) ==> (- ?x ?z)", + "(+ (- ?x ?y) (- ?z ?x)) ==> (- ?z ?y)", + "(+ (- ?x ?y) (+ ?y ?z)) ==> (+ ?x ?z)", + "(+ (- ?x ?y) (+ ?z ?y)) ==> (+ ?x ?z)", + "(+ ?x (- (- ?y ?x) ?z)) ==> (- ?y ?z)", + "(+ (- (- ?x ?y) ?z) ?y) ==> (- ?x ?z)", + "(+ ?x (- ?y (+ ?x ?z))) ==> (- ?y ?z)", + "(+ ?x (- ?y (+ ?z ?x))) ==> (- ?y ?z)", + "(+ (- ?x (+ ?y ?z)) ?y) ==> (- ?x ?z)", + "(+ (- ?x (+ ?y ?z)) ?z) ==> (- ?x ?y)", + "(+ ?x (- (- 0 ?y) ?z)) ==> (- ?x (+ ?y ?z))", + "(+ (- (- 0 ?x) ?y) ?z) ==> (- ?z (+ ?x ?y))", + "(+ (* ?x ?y) (* ?z ?y)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?x ?y) (* ?y ?z)) ==> (* (+ ?x ?z) ?y)", + "(+ (* ?y ?x) (* ?z ?y)) ==> (* ?y (+ ?x ?z))", + "(+ (* ?y ?x) (* ?y ?z)) ==> (* ?y (+ ?x ?z))", + "(+ ?x (* ?x ?y)) ==> (* ?x (+ ?y 1))", + "(+ ?x (* ?y ?x)) ==> (* (+ ?y 1) ?x)", + "(+ (* ?x ?y) ?x) ==> (* ?x (+ ?y 1))", + "(+ (min ?x (- ?y ?z)) ?z) ==> (min (+ ?x ?z) ?y)", + "(+ (min (- ?y ?z) ?x) ?z) ==> (min ?y (+ ?x ?z))", + "(+ ?z (min ?x (- ?y ?z))) ==> (min (+ ?z ?x) ?y)", + "(+ ?z (min (- ?y ?z) ?x)) ==> (min ?y (+ ?z ?x))", + "(+ ?z (max ?x (- ?y ?z))) ==> (max (+ ?z ?x) ?y)", + "(+ ?z (max (- ?y ?z) ?x)) ==> (max ?y (+ ?z ?x))", + "(+ (max ?x (- ?y ?z)) ?z) ==> (max (+ ?x ?z) ?y)", + "(+ (max (- ?y ?z) ?x) ?z) ==> (max ?y (+ ?x ?z))", + "(+ (max ?x ?y) (min ?x ?y)) ==> (+ ?x ?y)", + "(+ (max ?x ?y) (min ?y ?x)) ==> (+ ?x ?y)", + "(min (select ?x (min ?z ?y) ?w) ?y) ==> (min (select ?x ?z ?w) ?y)", + "(min (select ?x (min ?z ?y) ?w) ?z) ==> (min (select ?x ?y ?w) ?z)", + "(min (select ?x ?w (min ?z ?y)) ?y) ==> (min (select ?x ?w ?z) ?y)", + "(min (select ?x ?w (min ?z ?y)) ?z) ==> (min (select ?x ?w ?y) ?z)", + "(min (max ?x ?y) (max ?x ?z)) ==> (max ?x (min ?y ?z))", + "(min (max ?x ?y) (max ?z ?x)) ==> (max ?x (min ?y ?z))", + "(min (max ?y ?x) (max ?x ?z)) ==> (max (min ?y ?z) ?x)", + "(min (max ?y ?x) (max ?z ?x)) ==> (max (min ?y ?z) ?x)", + "(min (max (min ?x ?y) ?z) ?y) ==> (min (max ?x ?z) ?y)", + "(min (max (min ?y ?x) ?z) ?y) ==> (min ?y (max ?x ?z))", + "(min ?x (min ?y (max ?x ?z))) ==> (min ?y ?x)", + "(min ?x (min ?y (max ?z ?x))) ==> (min ?y ?x)", + "(min ?x (min (max ?x ?y) ?z)) ==> (min ?x ?z)", + "(min ?x (min (max ?y ?x) ?z)) ==> (min ?x ?z)", + "(min (min ?x (max ?y ?z)) ?y) ==> (min ?x ?y)", + "(min (min ?x (max ?y ?z)) ?z) ==> (min ?x ?z)", + "(min (min (max ?x ?y) ?z) ?x) ==> (min ?z ?x)", + "(min (min (max ?x ?y) ?z) ?y) ==> (min ?z ?y)", + "(min (select ?x (max ?y ?z) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min (select ?x (max ?z ?y) ?w) ?z) ==> (select ?x ?z (min ?w ?z))", + "(min ?z (select ?x (max ?y ?z) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min ?z (select ?x (max ?z ?y) ?w)) ==> (select ?x ?z (min ?z ?w))", + "(min (select ?x ?y (max ?w ?z)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min (select ?x ?y (max ?z ?w)) ?z) ==> (select ?x (min ?y ?z) ?z)", + "(min ?z (select ?x ?y (max ?w ?z))) ==> (select ?x (min ?z ?y) ?z)", + "(min ?z (select ?x ?y (max ?z ?w))) ==> (select ?x (min ?z ?y) ?z)", + "(min (select ?x ?y ?z) (select ?x ?w ?u)) ==> (select ?x (min ?y ?w) (min ?z ?u))", + "(min (+ ?x ?y) (+ ?x ?z)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?x ?y) (+ ?z ?x)) ==> (+ ?x (min ?y ?z))", + "(min (+ ?y ?x) (+ ?x ?z)) ==> (+ (min ?y ?z) ?x)", + "(min (+ ?y ?x) (+ ?z ?x)) ==> (+ (min ?y ?z) ?x)", + "(min ?x (+ ?x ?z)) ==> (+ ?x (min ?z 0))", + "(min ?x (+ ?z ?x)) ==> (+ ?x (min ?z 0))", + "(min (+ ?y ?x) ?x) ==> (+ (min ?y 0) ?x)", + "(min (+ ?x ?y) ?x) ==> (+ ?x (min ?y 0))", + "(min (min (+ ?x ?y) ?z) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?x ?w)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?x ?y) ?z) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min ?z (+ ?x ?y)) (+ ?w ?x)) ==> (min (+ ?x (min ?y ?w)) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?x ?w)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min (+ ?y ?x) ?z) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (min ?z (+ ?y ?x)) (+ ?w ?x)) ==> (min (+ (min ?y ?w) ?x) ?z)", + "(min (+ (+ ?x ?w) ?y) (+ ?x ?z)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?x ?z)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) (+ ?z ?x)) ==> (+ ?x (min (+ ?w ?y) ?z))", + "(min (+ (+ ?w ?x) ?y) (+ ?z ?x)) ==> (+ (min (+ ?w ?y) ?z) ?x)", + "(min (+ (+ ?x ?w) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ (+ ?w ?x) ?y) ?x) ==> (+ ?x (min (+ ?w ?y) 0))", + "(min (+ ?x ?y) (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?x ?y) (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) ?y))", + "(min (+ ?y ?x) (+ (+ ?w ?x) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min (+ ?y ?x) (+ (+ ?x ?w) ?z)) ==> (+ (min (+ ?w ?z) ?y) ?x)", + "(min ?x (+ (+ ?w ?x) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min ?x (+ (+ ?x ?w) ?z)) ==> (+ ?x (min (+ ?w ?z) 0))", + "(min (- ?y ?x) (- ?z ?x)) ==> (- (min ?y ?z) ?x)", + "(min (- ?x ?y) (- ?x ?z)) ==> (- ?x (max ?y ?z))", + "(min (- ?x ?y) (+ (- ?z ?y) ?w)) ==> (- (min ?x (+ ?z ?w)) ?y)", + "(min (- ?x ?y) (+ ?w (- ?z ?y))) ==> (- (min ?x (+ ?w ?z)) ?y)", + "(min ?x (- ?x ?y)) ==> (- ?x (max ?y 0))", + "(min (- ?x ?y) ?x) ==> (- ?x (max ?y 0))", + "(min ?x (+ (- ?x ?y) ?z)) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (+ ?z (- ?x ?y))) ==> (+ ?x (min (- ?z ?y) 0))", + "(min ?x (- (- ?x ?y) ?z)) ==> (- ?x (max (+ ?y ?z) 0))", + "(min (+ (- ?x ?y) ?z) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (+ ?z (- ?x ?y)) ?x) ==> (+ (min (- ?z ?y) 0) ?x)", + "(min (- (- ?x ?y) ?z) ?x) ==> (- ?x (max (+ ?y ?z) 0))", + "(- (min ?x ?y) (max ?x ?z)) ==> (min (- (min ?x ?y) (max ?x ?z)) 0)", + "(- (max ?x ?y) (min ?x ?z)) ==> (max (- (max ?x ?y) (min ?x ?z)) 0)" + ] +} diff --git a/jfp/cs2/halide/w-None.rules b/jfp/cs2/halide/w-None.rules new file mode 100644 index 00000000..16259c58 --- /dev/null +++ b/jfp/cs2/halide/w-None.rules @@ -0,0 +1,414 @@ +(* ?a (select ?d ?c ?b)) ==> (* (select ?d ?c ?b) ?a) +(* (select ?d ?c ?b) ?a) ==> (* ?a (select ?d ?c ?b)) +(+ ?a (select ?d ?c ?b)) ==> (+ (select ?d ?c ?b) ?a) +(+ (select ?d ?c ?b) ?a) ==> (+ ?a (select ?d ?c ?b)) +(&& ?a (select ?d ?c ?b)) ==> (&& (select ?d ?c ?b) ?a) +(&& (select ?d ?c ?b) ?a) ==> (&& ?a (select ?d ?c ?b)) +(== ?a (select ?d ?c ?b)) ==> (== (select ?d ?c ?b) ?a) +(== (select ?d ?c ?b) ?a) ==> (== ?a (select ?d ?c ?b)) +(|| ?a (select ?d ?c ?b)) ==> (|| (select ?d ?c ?b) ?a) +(|| (select ?d ?c ?b) ?a) ==> (|| ?a (select ?d ?c ?b)) +(^ ?a (select ?d ?c ?b)) ==> (^ (select ?d ?c ?b) ?a) +(^ (select ?d ?c ?b) ?a) ==> (^ ?a (select ?d ?c ?b)) +(select (- ?d ?c) ?b ?a) ==> (select (!= ?d ?c) ?b ?a) +(select (!= ?d ?c) ?b ?a) ==> (select (- ?d ?c) ?b ?a) +(select (&& ?d ?c) ?b ?a) ==> (select (* ?d ?c) ?b ?a) +(select (* ?d ?c) ?b ?a) ==> (select (&& ?d ?c) ?b ?a) +(select ?c ?d (select ?c ?b ?a)) ==> (select ?c ?d ?a) +(select ?d (select ?d ?c ?b) ?a) ==> (select ?d ?c ?a) +(select ?c ?d (select ?c ?b ?a)) ==> (select (! ?c) ?a ?d) +(select ?d (select ?d ?c ?b) ?a) ==> (select (! ?d) ?a ?c) +(select (&& ?d ?c) ?b ?a) ==> (select ?d (select ?c ?b ?a) ?a) +(select ?d (select ?c ?b ?a) ?a) ==> (select (&& ?d ?c) ?b ?a) +(+ ?c (+ ?b (+ ?a ?d))) ==> (+ (+ ?d (+ ?c ?b)) ?a) +(+ (+ ?d (+ ?c ?b)) ?a) ==> (+ ?c (+ ?b (+ ?a ?d))) +(select (|| (! ?c) ?d) ?a ?b) ==> (select ?d ?a (select ?c ?b ?a)) +(select ?d ?a (select ?c ?b ?a)) ==> (select (|| (! ?c) ?d) ?a ?b) +(* (select ?a ?d (* ?c ?b)) ?a) ==> (* ?a ?d) +(* (select ?a ?d (+ ?c ?b)) ?a) ==> (* ?d ?a) +(* (select ?b ?a (+ ?d ?c)) ?b) ==> (* ?b ?a) +(* (select ?a ?d (- ?c ?b)) ?a) ==> (* ?a ?d) +(* (select ?a ?d (- ?c ?b)) ?a) ==> (* ?d ?a) +(* (select ?a ?d (min ?c ?b)) ?a) ==> (* ?d ?a) +(+ (select ?d ?c ?b) ?a) ==> (select ?d (+ ?c ?a) (+ ?b ?a)) +(select ?d (+ ?c ?a) (+ ?b ?a)) ==> (+ (select ?d ?c ?b) ?a) +(select ?d ?c (+ ?b (+ ?a ?d))) ==> (select ?d ?c (+ ?b ?a)) +(select ?d ?c (+ ?b ?a)) ==> (select ?d ?c (+ ?b (+ ?a ?d))) +(select ?a ?d (- ?c ?b)) ==> (select ?a ?d (- ?c (- ?b ?a))) +(select ?a ?d (- ?c (- ?b ?a))) ==> (select ?a ?d (- ?c ?b)) +(* (select ?b ?a (- ?d ?c)) ?b) ==> (* (min ?b ?a) (max ?b ?a)) +(select (! ?c) (select (! ?c) ?a ?d) ?b) ==> (select ?c ?b ?a) +(select (! ?c) ?d (select (! ?c) ?b ?a)) ==> (select ?c ?a ?d) +(* (select ?b ?a (- ?d ?c)) ?b) ==> (* (select ?c ?b ?a) (select (! ?c) ?b ?a)) +(|| (select (select ?a ?b ?d) ?c (* ?a ?b)) ?a) ==> (|| (&& ?d ?c) ?a) +(|| (select ?d ?c ?b) ?a) ==> (|| (select ?c ?b ?a) (select ?d ?c (|| ?b ?a))) +(|| (select ?c ?b ?a) (select ?d ?c (|| ?b ?a))) ==> (|| (select ?d ?c ?b) ?a) +(&& (select (select ?d ?c ?b) ?a (* ?d ?c)) ?a) ==> (&& (select ?d ?c (* ?b ?a)) ?a) +(&& (select ?d ?c (* ?b ?a)) ?a) ==> (&& (select (select ?d ?c ?b) ?a (* ?d ?c)) ?a) +(* (select ?a ?d (- ?c ?b)) ?a) ==> (* (select (! ?b) ?a ?d) (select (! (! ?b)) ?a ?d)) +(select ?a (select ?d ?c ?b) 0) ==> (select ?a (select ?d ?c ?b) ?a) +(select ?a (select ?d ?c ?b) ?a) ==> (select ?a (select ?d ?c ?b) 0) +(select ?a ?d (select ?c ?b 0)) ==> (select ?a ?d (select ?c ?b ?a)) +(select ?a ?d (select ?c ?b ?a)) ==> (select ?a ?d (select ?c ?b 0)) +(select ?b ?a (* ?d (* ?c ?b))) ==> (select ?b ?a 0) +(select (! ?a) 0 (select ?d ?c ?b)) ==> (select ?a (select ?d ?c ?b) ?a) +(select ?a (select ?d ?c ?b) ?a) ==> (select (! ?a) 0 (select ?d ?c ?b)) +(select ?d 0 (select ?c ?b ?a)) ==> (select (! ?d) (select ?c ?b ?a) 0) +(select (! ?d) (select ?c ?b ?a) 0) ==> (select ?d 0 (select ?c ?b ?a)) +(select (! ?c) ?a ?b) ==> (select ?c ?b ?a) +(select ?c ?b ?a) ==> (select (! ?c) ?a ?b) +(select (- ?c) ?b ?a) ==> (select ?c ?b ?a) +(select ?c ?b ?a) ==> (select (- ?c) ?b ?a) +(* (* ?c ?a) ?b) ==> (* ?c (* ?b ?a)) +(* ?c (* ?b ?a)) ==> (* (* ?c ?a) ?b) +(* ?b (* ?a ?c)) ==> (* (* ?c ?b) ?a) +(* (* ?c ?b) ?a) ==> (* ?b (* ?a ?c)) +(* (* ?c ?b) ?a) ==> (* ?c (* ?b ?a)) +(* ?c (* ?b ?a)) ==> (* (* ?c ?b) ?a) +(+ (+ ?c ?b) ?a) ==> (+ ?c (+ ?b ?a)) +(+ ?c (+ ?b ?a)) ==> (+ (+ ?c ?b) ?a) +(+ ?b (+ ?a ?c)) ==> (+ (+ ?c ?b) ?a) +(+ (+ ?c ?b) ?a) ==> (+ ?b (+ ?a ?c)) +(+ ?c (+ ?a ?b)) ==> (+ ?c (+ ?b ?a)) +(+ ?c (+ ?b ?a)) ==> (+ ?c (+ ?a ?b)) +(&& ?c (&& ?a ?b)) ==> (&& (&& ?c ?b) ?a) +(&& (&& ?c ?b) ?a) ==> (&& ?c (&& ?a ?b)) +(^ ?b (^ ?a ?c)) ==> (^ (^ ?c ?b) ?a) +(^ (^ ?c ?b) ?a) ==> (^ ?b (^ ?a ?c)) +(|| ?c (|| ?a ?b)) ==> (|| ?c (|| ?b ?a)) +(|| ?c (|| ?b ?a)) ==> (|| ?c (|| ?a ?b)) +(^ ?c (^ ?a ?b)) ==> (^ ?c (^ ?b ?a)) +(^ ?c (^ ?b ?a)) ==> (^ ?c (^ ?a ?b)) +(^ ?c (^ ?b ?a)) ==> (^ (^ ?c ?b) ?a) +(^ (^ ?c ?b) ?a) ==> (^ ?c (^ ?b ?a)) +(&& ?c (&& ?a ?b)) ==> (&& ?c (&& ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (&& ?c (&& ?a ?b)) +(&& (&& ?a ?c) ?b) ==> (&& ?c (&& ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (&& (&& ?a ?c) ?b) +(|| ?c (|| ?a ?b)) ==> (|| (|| ?c ?b) ?a) +(|| (|| ?c ?b) ?a) ==> (|| ?c (|| ?a ?b)) +(|| (|| ?a ?c) ?b) ==> (|| ?c (|| ?b ?a)) +(|| ?c (|| ?b ?a)) ==> (|| (|| ?a ?c) ?b) +(max (max ?c ?a) ?b) ==> (max ?c (max ?b ?a)) +(max ?c (max ?b ?a)) ==> (max (max ?c ?a) ?b) +(max (max ?a ?c) ?b) ==> (max ?c (max ?b ?a)) +(max ?c (max ?b ?a)) ==> (max (max ?a ?c) ?b) +(min ?b (min ?a ?c)) ==> (min (min ?c ?b) ?a) +(min (min ?c ?b) ?a) ==> (min ?b (min ?a ?c)) +(min ?c (min ?b ?a)) ==> (min (min ?c ?b) ?a) +(min (min ?c ?b) ?a) ==> (min ?c (min ?b ?a)) +(max ?c (max ?a ?b)) ==> (max ?c (max ?b ?a)) +(max ?c (max ?b ?a)) ==> (max ?c (max ?a ?b)) +(min ?c (min ?a ?b)) ==> (min ?c (min ?b ?a)) +(min ?c (min ?b ?a)) ==> (min ?c (min ?a ?b)) +(- (- ?c ?b) ?a) ==> (- ?c (+ ?b ?a)) +(- ?c (+ ?b ?a)) ==> (- (- ?c ?b) ?a) +(&& ?c (&& ?a ?b)) ==> (&& ?c (* ?b ?a)) +(&& ?c (* ?b ?a)) ==> (&& ?c (&& ?a ?b)) +(max (min ?b ?a) ?c) ==> (max ?c (min ?b ?a)) +(max ?c (min ?b ?a)) ==> (max (min ?b ?a) ?c) +(min (max ?b ?c) ?a) ==> (min (max ?c ?b) ?a) +(min (max ?c ?b) ?a) ==> (min (max ?b ?c) ?a) +(- ?b (- ?a ?c)) ==> (- (+ ?c ?b) ?a) +(- (+ ?c ?b) ?a) ==> (- ?b (- ?a ?c)) +(+ ?c (- ?b ?a)) ==> (- (+ ?c ?b) ?a) +(- (+ ?c ?b) ?a) ==> (+ ?c (- ?b ?a)) +(|| ?c (&& ?b ?a)) ==> (|| ?c (* ?b ?a)) +(|| ?c (* ?b ?a)) ==> (|| ?c (&& ?b ?a)) +(|| (select ?b ?c ?a) ?b) ==> (|| ?b ?a) +(&& (select ?a ?c ?b) ?a) ==> (&& ?a ?c) +(&& (select ?a ?b ?c) ?a) ==> (&& ?b ?a) +(&& (select ?b ?a ?c) ?b) ==> (&& (- ?b) (- ?a)) +(== (+ ?c ?b) ?a) ==> (! (+ ?c (- ?b ?a))) +(! (+ ?c (- ?b ?a))) ==> (== (+ ?c ?b) ?a) +(! (&& ?c (&& ?b ?a))) ==> (! (* ?c (* ?b ?a))) +(! (* ?c (* ?b ?a))) ==> (! (&& ?c (&& ?b ?a))) +(<= (min ?c ?b) (min ?b ?a)) ==> (<= (min ?c ?b) ?a) +(<= (min ?c ?b) ?a) ==> (<= (min ?c ?b) (min ?b ?a)) +(&& (|| ?c ?b) ?a) ==> (|| (&& ?c ?a) (&& ?b ?a)) +(|| (&& ?c ?a) (&& ?b ?a)) ==> (&& (|| ?c ?b) ?a) +(< (max ?c ?b) ?a) ==> (< (max ?c ?b) (max ?b ?a)) +(< (max ?c ?b) (max ?b ?a)) ==> (< (max ?c ?b) ?a) +(&& (<= ?c ?b) (<= ?c ?a)) ==> (<= ?c (min ?b ?a)) +(<= ?c (min ?b ?a)) ==> (&& (<= ?c ?b) (<= ?c ?a)) +(<= ?b (max ?c ?a)) ==> (|| (<= ?b ?c) (<= ?b ?a)) +(|| (<= ?b ?c) (<= ?b ?a)) ==> (<= ?b (max ?c ?a)) +(&& (< ?c ?b) (< ?c ?a)) ==> (< ?c (min ?b ?a)) +(< ?c (min ?b ?a)) ==> (&& (< ?c ?b) (< ?c ?a)) +(|| (< ?c ?b) (< ?c ?a)) ==> (< ?c (max ?b ?a)) +(< ?c (max ?b ?a)) ==> (|| (< ?c ?b) (< ?c ?a)) +(&& (select ?a ?b ?c) ?a) ==> (&& (&& ?a ?b) (&& ?b ?a)) +(&& (select ?a ?b ?c) ?a) ==> (|| (&& ?a ?b) (&& ?b ?a)) +(&& (select ?b ?a ?c) ?b) ==> (&& (min ?b ?a) (max ?b ?a)) +(* (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (* ?b ?a) +(+ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (+ ?b ?a) +(&& (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (&& ?b ?a) +(|| (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (|| ?a ?b) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (^ ?a ?b) +(+ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (- ?b (- ?a)) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (^ (! ?b) (! ?a)) +(|| (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (|| (- ?b) (- ?a)) +(&& (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (&& (- ?b) (- ?a)) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (^ (- ?b) (- ?a)) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (!= (! ?b) (! ?a)) +(|| (select ?c ?a ?b) (select (! ?c) ?a ?b)) ==> (|| (|| ?a ?b) (|| ?b ?a)) +(&& (select ?c ?a ?b) (select (! ?c) ?a ?b)) ==> (&& (&& ?a ?b) (&& ?b ?a)) +(|| (select ?c ?a ?b) (select (! ?c) ?a ?b)) ==> (&& (|| ?a ?b) (|| ?b ?a)) +(&& (select ?c ?a ?b) (select (! ?c) ?a ?b)) ==> (|| (&& ?a ?b) (&& ?b ?a)) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (|| (^ ?b ?a) (^ ?a ?b)) +(^ (select ?c ?a ?b) (select (! ?c) ?a ?b)) ==> (&& (^ ?a ?b) (^ ?b ?a)) +(* (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (* (min ?b ?a) (max ?b ?a)) +(+ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (+ (min ?b ?a) (max ?b ?a)) +(|| (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (|| (min ?b ?a) (max ?b ?a)) +(&& (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (&& (min ?b ?a) (max ?b ?a)) +(^ (select ?c ?b ?a) (select (! ?c) ?b ?a)) ==> (^ (min ?b ?a) (max ?b ?a)) +(<= (&& ?c (&& ?a ?b)) (&& (&& ?c ?a) ?b)) ==> (<= ?a ?a) +(== (&& ?a (&& ?c ?b)) (&& (&& ?a ?c) ?b)) ==> (== ?a ?a) +(<= (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (<= ?b ?b) +(<= (min ?c (min ?b ?a)) (min (min ?c ?b) ?a)) ==> (<= ?b ?b) +(== (min (min ?c ?b) ?a) (min ?c (min ?b ?a))) ==> (== ?b ?b) +(== (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (== ?c ?c) +(== (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) ==> (== ?c ?c) +(<= (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) ==> (<= ?b ?b) +(<= (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (<= ?b ?b) +(== (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (== ?c ?c) +(== (|| ?c (|| ?b ?a)) (|| (|| ?c ?b) ?a)) ==> (== ?c ?c) +(^ (+ ?c (+ ?a ?b)) (+ (+ ?c ?a) ?b)) ==> (^ ?a ?a) +(< (min ?c (min ?a ?b)) (min (min ?c ?a) ?b)) ==> (< ?a ?a) +(< (* ?c (* ?a ?b)) (* (* ?c ?a) ?b)) ==> (< ?a ?a) +(< (&& ?c (&& ?a ?b)) (&& (&& ?c ?a) ?b)) ==> (< ?a ?a) +(< (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) ==> (< ?b ?b) +(^ (min ?c (min ?b ?a)) (min (min ?c ?b) ?a)) ==> (^ ?b ?b) +(< (|| ?c (|| ?b ?a)) (|| (|| ?c ?b) ?a)) ==> (< ?b ?b) +(^ (&& ?c (&& ?b ?a)) (&& (&& ?c ?b) ?a)) ==> (^ ?b ?b) +(^ (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (^ ?b ?b) +(^ (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) ==> (^ ?b ?b) +(< (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (< ?b ?b) +(== (&& ?c (&& ?a ?b)) (&& (&& ?c ?a) ?b)) ==> (<= ?a ?a) +(< (min ?c (min ?a ?b)) (min (min ?c ?a) ?b)) ==> (^ ?a ?a) +(< (min ?a (min ?c ?b)) (min (min ?a ?c) ?b)) ==> (- ?a ?a) +(!= (|| ?c (|| ?b ?a)) (|| (|| ?c ?b) ?a)) ==> (^ ?b ?b) +(!= (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) ==> (^ ?b ?b) +(!= (min ?c (min ?b ?a)) (min (min ?c ?b) ?a)) ==> (^ ?b ?b) +(!= (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (^ ?b ?b) +(!= (&& ?c (&& ?b ?a)) (&& (&& ?c ?b) ?a)) ==> (^ ?b ?b) +(!= (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (^ ?b ?b) +(== (min (max ?c ?a) ?b) (max (min ?c ?b) ?a)) ==> (<= ?a ?b) +(== (max (min ?c ?a) ?b) (min (max ?c ?b) ?a)) ==> (<= ?b ?a) +(== (min (min ?c ?b) ?a) (min ?c (min ?b ?a))) ==> (^ ?c (! ?c)) +(== (min (min ?c ?b) ?a) (min ?c (min ?b ?a))) ==> (^ (! ?c) ?c) +(== (max (min ?c ?b) ?a) (min (max ?c ?a) ?b)) ==> (! (< ?b ?a)) +(&& ?c (&& ?b ?a)) ==> (&& (&& ?c (&& ?b ?a)) (&& (&& ?c ?b) ?a)) +(&& (&& ?c (&& ?b ?a)) (&& (&& ?c ?b) ?a)) ==> (&& ?c (&& ?b ?a)) +(== (min (min ?c ?a) ?b) (min ?c (min ?a ?b))) ==> (== (min ?a ?a) ?a) +(== (max ?a (max ?c ?b)) (max (max ?a ?c) ?b)) ==> (== (max ?a ?a) ?a) +(&& ?c (&& ?b ?a)) ==> (|| (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) +(|| (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (&& ?c (&& ?b ?a)) +(== (min (min ?a ?b) ?c) (min ?a (min ?b ?c))) ==> (<= (min ?a ?b) ?a) +(== (max (min ?c ?b) ?a) (min (max ?c ?a) ?b)) ==> (<= (- ?b) (- ?a)) +(== (+ ?a (+ ?b ?c)) (+ (+ ?a ?b) ?c)) ==> (== (+ ?a ?b) (+ ?b ?a)) +(== (min (min ?c ?a) ?b) (min ?c (min ?a ?b))) ==> (== (min ?a ?b) (min ?b ?a)) +(== (max (max ?a ?b) ?c) (max ?a (max ?b ?c))) ==> (== (max ?a ?b) (max ?b ?a)) +(== (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (== (* ?c ?b) (* ?b ?c)) +(<= (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (<= (&& ?a ?b) (&& ?b ?a)) +(== (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (== (&& ?a ?b) (&& ?b ?a)) +(== (|| ?a (|| ?b ?c)) (|| (|| ?a ?b) ?c)) ==> (== (|| ?a ?b) (|| ?b ?a)) +(!= (|| ?c (|| ?b ?a)) (|| (|| ?c ?b) ?a)) ==> (!= (|| ?c ?b) (|| ?b ?c)) +(< (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (< (&& ?a ?b) (&& ?b ?a)) +(< (|| ?c (|| ?b ?a)) (|| (|| ?c ?b) ?a)) ==> (< (|| ?c ?b) (|| ?b ?c)) +(!= (max ?a (max ?b ?c)) (max (max ?a ?b) ?c)) ==> (!= (max ?a ?b) (max ?b ?a)) +(!= (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (!= (* ?c ?b) (* ?b ?c)) +(^ (+ ?a (+ ?b ?c)) (+ (+ ?a ?b) ?c)) ==> (^ (^ ?a ?b) (^ ?b ?a)) +(^ (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (^ (&& ?a ?b) (&& ?b ?a)) +(!= (&& ?c (&& ?b ?a)) (&& (&& ?c ?b) ?a)) ==> (!= (&& ?c ?b) (&& ?b ?c)) +(!= (min ?a (min ?b ?c)) (min (min ?a ?b) ?c)) ==> (!= (min ?a ?b) (min ?b ?a)) +(!= (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (!= (+ ?c ?b) (+ ?b ?c)) +(<= (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (<= (|| ?a ?b) (|| ?b ?a)) +(== (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (== (^ ?a ?b) (^ ?b ?a)) +(== (min (min ?b ?a) ?c) (min ?b (min ?a ?c))) ==> (== (max ?a (min ?b ?a)) ?a) +(<= (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (<= (^ ?a ?b) (^ ?b ?a)) +(< (min ?a (min ?b ?c)) (min (min ?a ?b) ?c)) ==> (< (^ ?a ?b) (^ ?b ?a)) +(^ (+ ?a (+ ?b ?c)) (+ (+ ?a ?b) ?c)) ==> (!= (^ ?a ?b) (^ ?b ?a)) +(^ (+ ?a (+ ?b ?c)) (+ (+ ?a ?b) ?c)) ==> (^ (|| ?a ?b) (|| ?b ?a)) +(== (min (min ?b ?a) ?c) (min ?b (min ?a ?c))) ==> (== (min ?b ?a) (select (<= ?b ?a) ?b ?a)) +(== (&& ?b (&& ?a ?c)) (&& (&& ?b ?a) ?c)) ==> (== (! (|| ?b ?a)) (&& (! ?b) (! ?a))) +(== (min (min ?a ?b) ?c) (min ?a (min ?b ?c))) ==> (== (&& ?b (! ?a)) (! (|| (! ?b) ?a))) +(== (min (min ?a ?b) ?c) (min ?a (min ?b ?c))) ==> (== (&& (! ?b) ?a) (! (|| ?b (! ?a)))) +(== (min (min ?b ?a) ?c) (min ?b (min ?a ?c))) ==> (== (! (&& ?b ?a)) (|| (! ?b) (! ?a))) +(&& (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) ==> (|| (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) +(|| (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) ==> (&& (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) +(|| (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (&& (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) +(&& (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (|| (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) +(&& (min ?c (min ?b ?a)) (min (min ?c ?b) ?a)) ==> (|| (min ?c (min ?b ?a)) (min (min ?c ?b) ?a)) +(|| (min ?c (min ?b ?a)) (min (min ?c ?b) ?a)) ==> (&& (min ?c (min ?b ?a)) (min (min ?c ?b) ?a)) +(== (&& (|| ?c ?b) ?a) (|| (&& ?c ?a) (&& ?b ?a))) ==> (== ?b ?b) +(== (&& ?c (&& ?b ?a)) (&& (&& ?c ?b) ?a)) ==> 1 +(< (min ?c (min ?b ?a)) (min (min ?c ?b) ?a)) ==> 0 +(== (|| ?c (|| ?b ?a)) (|| (|| ?c ?b) ?a)) ==> (|| 1 ?c) +(== (|| ?c (|| ?b ?a)) (|| (|| ?c ?b) ?a)) ==> (|| ?b 1) +(< (&& ?c (&& ?b ?a)) (&& (&& ?c ?b) ?a)) ==> (&& ?c 0) +(< (* ?c (* ?a ?b)) (* (* ?c ?a) ?b)) ==> (* ?a 0) +(== (&& ?a (&& ?c ?b)) (&& (&& ?a ?c) ?b)) ==> (select ?a 1 1) +(< (min ?a (min ?c ?b)) (min (min ?a ?c) ?b)) ==> (select 0 ?a 0) +(== (min (min ?a ?c) ?b) (min ?a (min ?c ?b))) ==> (== (* ?a 1) ?a) +(== (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (== (select 1 ?a ?b) ?a) +(< (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (* (select 0 ?c ?b) 0) +(== (min (min ?c ?a) ?b) (min ?c (min ?a ?b))) ==> (== (! (min 1 ?a)) (max 0 (! ?a))) +(< (min ?a (min ?b ?c)) (min (min ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(< (* ?a (* ?b ?c)) (* (* ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(^ (+ ?a (+ ?b ?c)) (+ (+ ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(!= (|| ?a (|| ?b ?c)) (|| (|| ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(!= (max ?a (max ?b ?c)) (max (max ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(< (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(< (max ?a (max ?b ?c)) (max (max ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(^ (min ?a (min ?b ?c)) (min (min ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(< (|| ?a (|| ?b ?c)) (|| (|| ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(^ (&& ?a (&& ?b ?c)) (&& (&& ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(!= (min ?a (min ?b ?c)) (min (min ?a ?b) ?c)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(!= (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (== (! (select 1 ?c ?b)) (select 0 ?b ?c)) +(^ (* ?c (* ?b ?a)) (* (* ?c ?b) ?a)) ==> (== (! (select 1 ?c ?b)) (select 0 ?b ?c)) +(!= (&& ?c (&& ?b ?a)) (&& (&& ?c ?b) ?a)) ==> (== (! (select 1 ?c ?b)) (select 0 ?b ?c)) +(^ (max ?c (max ?b ?a)) (max (max ?c ?b) ?a)) ==> (== (! (select 1 ?c ?b)) (select 0 ?b ?c)) +(< (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (== (! (select 1 ?c ?b)) (select 0 ?b ?c)) +(!= (+ ?c (+ ?b ?a)) (+ (+ ?c ?b) ?a)) ==> (== (! (select 1 ?c ?b)) (select 0 ?b ?c)) +(== ?a ?b) ==> (== ?b ?a) +(== ?b ?a) ==> (== ?a ?b) +(!= ?a ?b) ==> (!= ?b ?a) +(!= ?b ?a) ==> (!= ?a ?b) +(min ?a ?b) ==> (min ?b ?a) +(min ?b ?a) ==> (min ?a ?b) +(max ?a ?b) ==> (max ?b ?a) +(max ?b ?a) ==> (max ?a ?b) +(select ?b ?a ?a) ==> ?a +(- ?a ?b) ==> (+ (- ?b) ?a) +(+ (- ?b) ?a) ==> (- ?a ?b) +(select ?b ?a ?a) ==> (min ?a ?a) +(select ?b ?a ?a) ==> (- (- ?a)) +(select ?b ?a ?a) ==> (max ?a ?a) +(== ?b ?a) ==> (! (!= ?b ?a)) +(! (!= ?b ?a)) ==> (== ?b ?a) +(< ?a ?b) ==> (! (<= ?b ?a)) +(! (<= ?b ?a)) ==> (< ?a ?b) +(! (== ?a ?b)) ==> (!= ?b ?a) +(!= ?b ?a) ==> (! (== ?a ?b)) +(- (+ ?b ?a)) ==> (- (- ?b) ?a) +(- (- ?b) ?a) ==> (- (+ ?b ?a)) +(- (* ?b ?a)) ==> (* (- ?b) ?a) +(* (- ?b) ?a) ==> (- (* ?b ?a)) +(- (* ?b ?a)) ==> (* ?b (- ?a)) +(* ?b (- ?a)) ==> (- (* ?b ?a)) +(!= ?b (- ?a)) ==> (!= (- ?b) ?a) +(!= (- ?b) ?a) ==> (!= ?b (- ?a)) +(^ (! ?b) ?a) ==> (^ ?b (! ?a)) +(^ ?b (! ?a)) ==> (^ (! ?b) ?a) +(^ (! ?b) ?a) ==> (! (^ ?b ?a)) +(! (^ ?b ?a)) ==> (^ (! ?b) ?a) +(! (&& ?b ?a)) ==> (! (* ?b ?a)) +(! (* ?b ?a)) ==> (! (&& ?b ?a)) +(== ?b (- ?a)) ==> (! (+ ?b ?a)) +(! (+ ?b ?a)) ==> (== ?b (- ?a)) +(max ?a (min ?b ?a)) ==> ?a +(^ ?b (^ ?b ?a)) ==> (! (! ?a)) +(^ ?b (^ ?b ?a)) ==> (&& ?a ?a) +(^ ?a (^ ?b ?a)) ==> (/ ?b ?b) +(<= ?b ?a) ==> (<= (max ?b ?a) ?a) +(<= (max ?b ?a) ?a) ==> (<= ?b ?a) +(! (^ (! ?b) ?a)) ==> (^ ?b ?a) +(^ ?b ?a) ==> (! (^ (! ?b) ?a)) +(|| (! ?a) ?b) ==> (! (&& (! ?b) ?a)) +(! (&& (! ?b) ?a)) ==> (|| (! ?a) ?b) +(^ (! ?b) ?a) ==> (== (! ?b) (! ?a)) +(== (! ?b) (! ?a)) ==> (^ (! ?b) ?a) +(! (&& ?b ?a)) ==> (max (! ?b) (! ?a)) +(max (! ?b) (! ?a)) ==> (! (&& ?b ?a)) +(! (|| ?a (! ?b))) ==> (&& ?b (! ?a)) +(&& ?b (! ?a)) ==> (! (|| ?a (! ?b))) +(! (|| ?b ?a)) ==> (min (! ?b) (! ?a)) +(min (! ?b) (! ?a)) ==> (! (|| ?b ?a)) +(&& ?a (! ?b)) ==> (select ?a (! ?b) ?a) +(select ?a (! ?b) ?a) ==> (&& ?a (! ?b)) +(! (|| ?b ?a)) ==> (&& (! ?b) (! ?a)) +(&& (! ?b) (! ?a)) ==> (! (|| ?b ?a)) +(! (< ?b ?a)) ==> (<= (- ?b) (- ?a)) +(<= (- ?b) (- ?a)) ==> (! (< ?b ?a)) +(! (<= ?b ?a)) ==> (< (- ?b) (- ?a)) +(< (- ?b) (- ?a)) ==> (! (<= ?b ?a)) +(|| ?b ?a) ==> (! (&& (! ?b) (! ?a))) +(! (&& (! ?b) (! ?a))) ==> (|| ?b ?a) +(&& ?b ?a) ==> (! (|| (! ?b) (! ?a))) +(! (|| (! ?b) (! ?a))) ==> (&& ?b ?a) +(min ?b ?a) ==> (select (<= ?b ?a) ?b ?a) +(select (<= ?b ?a) ?b ?a) ==> (min ?b ?a) +(select (! ?b) ?a (! ?b)) ==> (* (! ?b) ?a) +(* (! ?b) ?a) ==> (select (! ?b) ?a (! ?b)) +(== (|| ?a ?b) (|| (! ?a) (! ?b))) ==> (^ ?b ?a) +(^ ?b ?a) ==> (== (|| ?a ?b) (|| (! ?a) (! ?b))) +(== (! (max ?b ?a)) (min (! ?b) (! ?a))) ==> (== (! (min ?b ?a)) (max (! ?b) (! ?a))) +(== (! (min ?b ?a)) (max (! ?b) (! ?a))) ==> (== (! (max ?b ?a)) (min (! ?b) (! ?a))) +(select 1 ?a ?b) ==> ?a +(select ?b ?a ?a) ==> (+ 0 ?a) +(^ ?b (^ ?b ?a)) ==> (&& 1 ?a) +(^ ?b (^ ?b ?a)) ==> (|| 0 ?a) +(^ ?a (^ ?b ?a)) ==> (!= 0 ?b) +(<= (+ ?b 1) ?a) ==> (< ?b ?a) +(< ?b ?a) ==> (<= (+ ?b 1) ?a) +(select ?b ?a 1) ==> (select (! ?b) (! ?b) ?a) +(select (! ?b) (! ?b) ?a) ==> (select ?b ?a 1) +(|| (! ?a) ?b) ==> (== (select ?b ?a 0) ?a) +(== (select ?b ?a 0) ?a) ==> (|| (! ?a) ?b) +(== ?b ?a) ==> (== (* ?b 2) (* 2 ?a)) +(== (* ?b 2) (* 2 ?a)) ==> (== ?b ?a) +(== (min 0 (+ ?b ?a)) 0) ==> (<= (- ?b) ?a) +(<= (- ?b) ?a) ==> (== (min 0 (+ ?b ?a)) 0) +(== (* ?b 2) (* 2 ?a)) ==> (== (- ?b) (- ?a)) +(== (- ?b) (- ?a)) ==> (== (* ?b 2) (* 2 ?a)) +(== (! ?a) (|| (! ?b) (== ?b 0))) ==> (^ ?b (! ?a)) +(^ ?b (! ?a)) ==> (== (! ?a) (|| (! ?b) (== ?b 0))) +(select 1 ?b ?a) ==> (- ?b 0) +(select 1 ?b ?a) ==> (* ?b 1) +(^ ?a (^ ?b ?a)) ==> (select ?b 1 0) +(! (select 1 ?b ?a)) ==> (! (min 1 ?b)) +(== (* ?b 2) (* 2 ?a)) ==> (== (+ ?b 1) (+ 1 ?a)) +(== (+ ?b 1) (+ 1 ?a)) ==> (== (* ?b 2) (* 2 ?a)) +(!= (* ?a ?b) (* ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (!= (* ?a ?b) (* ?b ?a)) +(!= (|| ?a ?b) (|| ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (!= (|| ?a ?b) (|| ?b ?a)) +(< (|| ?a ?b) (|| ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (< (|| ?a ?b) (|| ?b ?a)) +(!= (+ ?a ?b) (+ ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (!= (+ ?a ?b) (+ ?b ?a)) +(< (&& ?a ?b) (&& ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (< (&& ?a ?b) (&& ?b ?a)) +(!= (&& ?a ?b) (&& ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (!= (&& ?a ?b) (&& ?b ?a)) +(< (^ ?a ?b) (^ ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (< (^ ?a ?b) (^ ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (!= (max ?a ?b) (max ?b ?a)) +(!= (max ?a ?b) (max ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(== (! (select 1 ?a ?b)) (select 0 ?b ?a)) ==> (!= (min ?a ?b) (min ?b ?a)) +(!= (min ?a ?b) (min ?b ?a)) ==> (== (! (select 1 ?a ?b)) (select 0 ?b ?a)) +(+ ?a ?a) ==> (* ?a 2) +(* ?a 2) ==> (+ ?a ?a) +(* 2 ?a) ==> (+ ?a ?a) +(+ ?a ?a) ==> (* 2 ?a) +(! (min 1 ?a)) ==> (! (! (! ?a))) +(! (! (! ?a))) ==> (! (min 1 ?a)) +(< ?a 1) ==> (<= ?a 0) +(<= ?a 0) ==> (< ?a 1) +(|| ?a ?a) ==> (select ?a 1 0) +(select ?a 1 0) ==> (|| ?a ?a) +(! (min 1 ?a)) ==> (== 0 ?a) +(== 0 ?a) ==> (! (min 1 ?a)) +(! (min 1 ?a)) ==> (^ ?a 1) +(^ ?a 1) ==> (! (min 1 ?a)) +(<= ?a 1) ==> (== (max ?a 1) 1) +(== (max ?a 1) 1) ==> (<= ?a 1) +(<= 0 ?a) ==> (== (max 0 ?a) ?a) +(== (max 0 ?a) ?a) ==> (<= 0 ?a) +(== (min ?a 0) 0) ==> (== (max 0 ?a) ?a) +(== (max 0 ?a) ?a) ==> (== (min ?a 0) 0) +(^ 0 ?a) ==> (select ?a 1 0) +(select ?a 1 0) ==> (^ 0 ?a) +(select ?a 1 0) ==> (^ ?a 0) +(^ ?a 0) ==> (select ?a 1 0) diff --git a/scripts/oopsla21/trig/complex.rules b/scripts/oopsla21/trig/complex.rules index a1c162c7..157a08eb 100644 --- a/scripts/oopsla21/trig/complex.rules +++ b/scripts/oopsla21/trig/complex.rules @@ -7,32 +7,21 @@ (+ ?a (- ?b ?c)) ==> (- (+ ?a ?b) ?c) (- ?a (- ?b ?c)) ==> (+ ?a (- ?c ?b)) (+ ?a (- ?c ?b)) ==> (- ?a (- ?b ?c)) -(/ ?a (* ?b ?c)) ==> (/ (/ ?a ?b) ?c) -(/ (/ ?a ?b) ?c) ==> (/ ?a (* ?b ?c)) (- ?a (+ ?b ?c)) ==> (- (- ?a ?b) ?c) (- (- ?a ?b) ?c) ==> (- ?a (+ ?b ?c)) -(/ (- ?a ?b) ?c) ==> (- (/ ?a ?c) (/ ?b ?c)) -(- (/ ?a ?c) (/ ?b ?c)) ==> (/ (- ?a ?b) ?c) (- (* ?a ?b) (* ?a ?c)) ==> (* ?a (- ?b ?c)) (* ?a (- ?b ?c)) ==> (- (* ?a ?b) (* ?a ?c)) -(/ (+ ?a ?b) ?c) ==> (+ (/ ?b ?c) (/ ?a ?c)) -(+ (/ ?b ?c) (/ ?a ?c)) ==> (/ (+ ?a ?b) ?c) (+ (* ?a ?b) (* ?b ?c)) ==> (* ?b (+ ?a ?c)) (* ?b (+ ?a ?c)) ==> (+ (* ?a ?b) (* ?b ?c)) -(/ (- (* ?a ?b) ?c) ?b) ==> (- ?a (/ ?c ?b)) -(- ?a (/ ?c ?b)) ==> (/ (- (* ?a ?b) ?c) ?b) -(/ ?a (- (/ ?b ?c) ?a)) ==> (/ ?c (- (/ ?b ?a) ?c)) (* ?a ?b) ==> (* ?b ?a) (+ ?a ?b) ==> (+ ?b ?a) (* ?a (+ ?b ?b)) ==> (* ?b (+ ?a ?a)) (+ ?a ?a) ==> (* 2 ?a) (* 2 ?a) ==> (+ ?a ?a) -(/ ?a ?b) ==> (/ (+ ?a ?a) (+ ?b ?b)) -(/ (+ ?a ?a) (+ ?b ?b)) ==> (/ ?a ?b) (- (* ?a ?a) (* ?b ?b)) ==> (* (- ?a ?b) (+ ?a ?b)) (* (- ?a ?b) (+ ?a ?b)) ==> (- (* ?a ?a) (* ?b ?b)) -(~ (~ ?a)) ==> ?a -?a ==> (~ (~ ?a)) +(- (- ?a)) ==> ?a +?a ==> (- (- ?a)) ?a ==> (* ?a 1) (* ?a 1) ==> ?a ?a ==> (+ ?a 0) @@ -42,14 +31,12 @@ ?a ==> (- ?a 0) (- ?a 0) ==> ?a (- ?a ?a) ==> 0 -(/ ?a ?a) ==> 1 -(~ ?a) ==> (/ ?a -1) -(/ ?a -1) ==> (~ ?a) -(~ ?a) ==> (* ?a -1) -(* ?a -1) ==> (~ ?a) -(~ ?a) ==> (- 0 ?a) -(- 0 ?a) ==> (~ ?a) -(/ 0 ?a) ==> 0 +(- ?a) ==> (/ ?a -1) +(/ ?a -1) ==> (- ?a) +(- ?a) ==> (* ?a -1) +(* ?a -1) ==> (- ?a) +(- ?a) ==> (- 0 ?a) +(- 0 ?a) ==> (- ?a) (* ?a 0) ==> 0 (- ?a -1) ==> (+ ?a 1) (+ ?a 1) ==> (- ?a -1) diff --git a/src/enumo/rule.rs b/src/enumo/rule.rs index 9ebdf2d6..8dcfce4e 100644 --- a/src/enumo/rule.rs +++ b/src/enumo/rule.rs @@ -26,36 +26,55 @@ impl Display for Rule { impl Rule { pub fn from_string(s: &str) -> Result<(Self, Option), String> { if let Some((l, r)) = s.split_once("=>") { - let l_pat: Pattern = l.parse().unwrap(); - let r_pat: Pattern = r.parse().unwrap(); - - let forwards = Self { - name: format!("{} ==> {}", l_pat, r_pat).into(), - lhs: l_pat.clone(), - rhs: r_pat.clone(), - rewrite: Rewrite::new( - format!("{} ==> {}", l_pat, r_pat), - l_pat.clone(), - Rhs { rhs: r_pat.clone() }, - ) - .unwrap(), + let l_pat = l.parse(); + let r_pat = r.parse(); + if l_pat.is_err() || r_pat.is_err() { + return Err(format!("Failed to parse {}", s)); + } + let l_pat: Pattern = l_pat.unwrap(); + let r_pat: Pattern = r_pat.unwrap(); + + let rewrite = Rewrite::new( + format!("{} ==> {}", l_pat, r_pat), + l_pat.clone(), + Rhs { rhs: r_pat.clone() }, + ); + + let forwards = if let Ok(rewrite) = rewrite { + Some(Self { + name: format!("{} ==> {}", l_pat, r_pat).into(), + lhs: l_pat.clone(), + rhs: r_pat.clone(), + rewrite, + }) + } else { + None + }; + let backwards = if s.contains("<=>") { + let rewrite = Rewrite::new( + format!("{} ==> {}", r_pat, l_pat), + r_pat.clone(), + Rhs { rhs: l_pat.clone() }, + ); + if let Ok(rewrite) = rewrite { + Some(Self { + name: format!("{} ==> {}", r_pat, l_pat).into(), + lhs: r_pat.clone(), + rhs: l_pat.clone(), + rewrite, + }) + } else { + None + } + } else { + None }; - if s.contains("<=>") { - let backwards = Self { - name: format!("{} ==> {}", r_pat, l_pat).into(), - lhs: r_pat.clone(), - rhs: l_pat.clone(), - rewrite: Rewrite::new( - format!("{} ==> {}", r_pat, l_pat), - r_pat, - Rhs { rhs: l_pat }, - ) - .unwrap(), - }; - Ok((forwards, Some(backwards))) + if let Some(forwards) = forwards { + Ok((forwards, backwards)) } else { - Ok((forwards, None)) + println!("Ignoring invalid rule {}", s); + Err(format!("Failed to parse {}", s)) } } else { Err(format!("Failed to parse {}", s)) diff --git a/src/enumo/ruleset.rs b/src/enumo/ruleset.rs index ac0130e5..a7b4be21 100644 --- a/src/enumo/ruleset.rs +++ b/src/enumo/ruleset.rs @@ -1,11 +1,20 @@ use egg::{AstSize, EClass, Extractor, RecExpr}; use indexmap::map::{IntoIter, Iter, IterMut, Values, ValuesMut}; -use rayon::prelude::{IntoParallelIterator, ParallelIterator}; -use std::{io::Write, sync::Arc}; +use indicatif::{ProgressBar, ProgressStyle}; +use rayon::prelude::*; +use std::{ + io::Write, + sync::{ + atomic::{AtomicUsize, Ordering}, + Arc, + }, + thread, + time::{Duration, Instant}, +}; use crate::{ - CVec, DeriveType, EGraph, ExtractableAstSize, HashMap, Id, IndexMap, Limits, Signature, - SynthAnalysis, SynthLanguage, + llm, CVec, DeriveType, EGraph, ExtractableAstSize, HashMap, Id, IndexMap, Limits, Pattern, + Signature, SynthAnalysis, SynthLanguage, }; use super::{Rule, Scheduler}; @@ -171,7 +180,9 @@ impl Ruleset { F: Fn(&Rule) -> bool + std::marker::Sync, { let rules: Vec<&Rule> = self.0.values().collect(); + let (yeses, nos): (Vec<_>, Vec<_>) = rules.into_par_iter().partition(|rule| f(rule)); + let mut yes = Ruleset::default(); let mut no = Ruleset::default(); yes.add_all(yeses); @@ -203,23 +214,53 @@ impl Ruleset { Self(all_rules) } - pub fn pretty_print(&self) { - let mut strs = vec![]; - for (name, rule) in &self.0 { - let reverse = Rule::new(&rule.rhs, &rule.lhs); - if reverse.is_some() && self.contains(&reverse.unwrap()) { - let reverse_name = format!("{} <=> {}", rule.rhs, rule.lhs); - if !strs.contains(&reverse_name) { - strs.push(format!("{} <=> {}", rule.lhs, rule.rhs)); + pub async fn from_llm(prompt: &str) -> Self { + let mut rules = IndexMap::default(); + + for model in llm::models() { + let model_t = Instant::now(); + let mut num_rules = 0; + let mut invalid = 0; + let res = llm::query(prompt, &model).await; + for line in res { + if let Some((l, r)) = line.split_once("=>") { + if let Ok(l_pat) = l.parse::>() { + if let Ok(r_pat) = r.parse::>() { + if let Some(forwards) = Rule::new(&l_pat, &r_pat) { + num_rules += 1; + rules.insert(forwards.name.clone(), forwards); + } else { + invalid += 1; + println!("Invalid rule: {}", line); + } + if let Some(backwards) = Rule::new(&r_pat, &l_pat) { + num_rules += 1; + rules.insert(backwards.name.clone(), backwards); + } + } else { + invalid += 1; + println!("Invalid rule: {}", line); + } + } else { + invalid += 1; + println!("Invalid rule: {}", line); + } } - } else { - strs.push(name.to_string()); } - } - for s in strs { - println!("{s}"); + println!( + "{model} | {num_rules} ({invalid} invalid) | {:?}", + model_t.elapsed() + ); } + + println!("Combined LLM Ruleset | {}", rules.len()); + + Self(rules) + } + + pub fn pretty_print(&self) { + println!("{}", self.to_str_vec().join("\n")) } /// Find candidates from two e-graphs @@ -423,14 +464,32 @@ impl Ruleset { /// while there are still candidates to choose: /// 1. select the best rule candidate /// 2. filter out candidates that are redundant given the addition of the selected rule - pub fn minimize(&mut self, prior: Ruleset, scheduler: Scheduler) -> (Self, Self) { + pub fn minimize( + &mut self, + prior: Ruleset, + scheduler: Scheduler, + step_size: usize, + ) -> (Self, Self) { let mut invalid: Ruleset = Default::default(); let mut chosen = prior.clone(); - let step_size = 1; + + let total = self.len() as u64; + let pb = ProgressBar::new(total); + pb.set_style( + ProgressStyle::default_bar() + .template("[{elapsed_precise}] [{bar:40.cyan/blue}] {pos}/{len} ({eta})") + .unwrap() + .progress_chars("##-"), + ); + while !self.is_empty() { + let before = self.len(); let selected = self.select(step_size, &mut invalid); chosen.extend(selected.clone()); self.shrink(&chosen, scheduler); + let after = self.len(); + let processed = before.saturating_sub(after); + pb.inc(processed as u64); } // Return only the new rules chosen.remove_all(prior); @@ -445,7 +504,7 @@ impl Ruleset { /// 2. Run the ruleset /// 3. Return true if the lhs and rhs are equivalent, false otherwise. pub fn can_derive(&self, derive_type: DeriveType, rule: &Rule, limits: Limits) -> bool { - let scheduler = Scheduler::Saturating(limits); + let scheduler = Scheduler::Simple(limits); let mut egraph: EGraph = Default::default(); let lexpr = &L::instantiate(&rule.lhs); let rexpr = &L::instantiate(&rule.rhs); @@ -475,7 +534,44 @@ impl Ruleset { /// Partition a ruleset into derivable / not-derivable with respect to this ruleset. pub fn derive(&self, derive_type: DeriveType, against: &Self, limits: Limits) -> (Self, Self) { - against.partition(|rule| self.can_derive(derive_type, rule, limits)) + let against: Vec<&Rule> = against.0.values().collect(); + let total = against.len(); + + let counter = Arc::new(AtomicUsize::new(0)); + let pb = ProgressBar::new(total as u64); + pb.set_style( + ProgressStyle::default_bar() + .template("[{elapsed_precise}] [{bar:40.cyan/blue}] {pos}/{len} ({eta})") + .unwrap() + .progress_chars("##-"), + ); + let counter_clone = Arc::clone(&counter); + let pb_clone = pb.clone(); + + let handle = thread::spawn(move || { + loop { + let processed = counter_clone.load(Ordering::Relaxed); + pb_clone.set_position(processed as u64); + if processed >= total { + break; + } + thread::sleep(Duration::from_millis(100)); + } + pb_clone.finish(); + }); + + let (yeses, nos): (Vec<_>, Vec<_>) = against.into_par_iter().partition(|rule| { + counter.fetch_add(1, Ordering::Relaxed); + self.can_derive(derive_type, rule, limits) + }); + + handle.join().unwrap(); + + let mut yes = Ruleset::default(); + let mut no = Ruleset::default(); + yes.add_all(yeses); + no.add_all(nos); + (yes, no) } pub fn print_derive(derive_type: DeriveType, one: &str, two: &str) { diff --git a/src/enumo/sexp.rs b/src/enumo/sexp.rs index 597e618a..5fed1761 100644 --- a/src/enumo/sexp.rs +++ b/src/enumo/sexp.rs @@ -3,7 +3,7 @@ use std::str::FromStr; use super::*; /// S-expression -#[derive(PartialEq, Eq, Clone, Debug)] +#[derive(PartialEq, Eq, Clone, Debug, Hash)] pub enum Sexp { Atom(String), List(Vec), @@ -14,8 +14,11 @@ impl FromStr for Sexp { fn from_str(s: &str) -> Result { use symbolic_expressions::parser::parse_str; - let sexp = parse_str(s).unwrap(); - Ok(Self::from_symbolic_expr(sexp)) + if let Ok(sexp) = parse_str(s) { + Ok(Self::from_symbolic_expr(sexp)) + } else { + Err(format!("Failed to parse {}", s)) + } } } diff --git a/src/enumo/workload.rs b/src/enumo/workload.rs index 913d3338..92b9c3fb 100644 --- a/src/enumo/workload.rs +++ b/src/enumo/workload.rs @@ -1,8 +1,9 @@ use egg::{EGraph, ENodeOrVar, RecExpr}; +use itertools::all; use super::*; -use crate::{SynthAnalysis, SynthLanguage}; -use std::io::Write; +use crate::{llm, SynthAnalysis, SynthLanguage}; +use std::{collections::HashSet, io::Write, time::Instant}; /// Workloads are sets of terms from a domain #[derive(PartialEq, Eq, Clone, Debug)] @@ -48,17 +49,78 @@ impl Workload { let infile = std::fs::File::open(filename).expect("can't open file"); let reader = std::io::BufReader::new(infile); let mut sexps = vec![]; - for line in std::io::BufRead::lines(reader) { - sexps.push(line.unwrap().parse().unwrap()); + for line in std::io::BufRead::lines(reader).map_while(Result::ok) { + if let Ok(sexp) = line.parse() { + sexps.push(sexp); + } else { + println!("Skipping invalid s-expression: {}", line); + } } Self::Set(sexps) } + pub async fn from_llm(prompt: &str) -> Self { + let mut valid_sexps = HashSet::new(); + for model in llm::models() { + let model_t = Instant::now(); + let mut valid = 0; + let mut invalid = 0; + let res = llm::query(prompt, &model).await; + for line in res { + if let Ok(sexp) = line.parse() { + valid += 1; + valid_sexps.insert(sexp); + } else { + invalid += 1; + println!("Skipping invalid s-expression: {}", line); + } + } + println!( + "{} | {} valid / {} invalid | {:?}", + model, + valid, + invalid, + model_t.elapsed() + ); + } + Workload::Set(valid_sexps.into_iter().collect()) + } + + pub fn as_lang(&self) -> Self { + self.as_lang_with_vars::(vec![]) + } + + pub fn as_lang_with_vars(&self, expected_vars: Vec) -> Self { + Workload::Set( + self.force() + .iter() + .filter(|sexp| match sexp.to_string().parse::>() { + Ok(expr) => all(expr.as_ref(), |node| { + if let ENodeOrVar::Var(v) = node.clone().to_enode_or_var() { + let mut v = v.to_string(); + v.remove(0); + let r = !expected_vars.is_empty() && expected_vars.contains(&v); + if !r { + println!("Contains unexpected vars: {}", sexp); + } + r + } else { + true + } + }), + Err(_) => false, + }) + .cloned() + .collect(), + ) + } + /// Materialize the workload into an e-graph /// Will crash if there are terms in the e-graph that are not parseable as terms in domain L pub fn to_egraph(&self) -> EGraph { let mut egraph = EGraph::default(); let sexps = self.force(); + println!("Sexps: {}", sexps.len()); // Have to find all the variables first so that we can initialize // their cvecs, which might require doing a multi-way cross product @@ -87,6 +149,7 @@ impl Workload { for sexp in sexps.iter() { egraph.add_expr(&sexp.to_string().parse::>().unwrap()); } + println!("Egraph: {}", egraph.number_of_classes()); egraph } @@ -108,11 +171,11 @@ impl Workload { set } Workload::Append(workloads) => { - let mut set = vec![]; + let mut set = HashSet::new(); for w in workloads { set.extend(w.force()); } - set + set.into_iter().collect() } } } @@ -137,10 +200,10 @@ impl Workload { let into: Workload = workload.into(); match (self, into) { (Workload::Set(xs), Workload::Set(ys)) => { - let mut all = vec![]; + let mut all = HashSet::new(); all.extend(xs); all.extend(ys); - Workload::Set(all) + Workload::Set(all.into_iter().collect()) } (Workload::Append(xs), Workload::Append(ys)) => { let mut all = vec![]; @@ -265,6 +328,13 @@ mod test { } } + #[test] + fn append_dups() { + let w1 = Workload::new(["a", "b", "x"]); + let w2 = Workload::new(["c", "x", "d", "d"]); + assert!(w1.append(w2).force().len() == 5) + } + #[test] fn append() { let empty = Workload::Set(vec![]); diff --git a/src/lib.rs b/src/lib.rs index 13631477..b5870c80 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,6 +12,7 @@ pub use util::*; mod bv; pub mod enumo; mod language; +pub mod llm; pub mod logger; pub mod recipe_utils; mod util; @@ -113,6 +114,14 @@ impl Limits { match_: 1000, } } + + pub fn trig_deriving() -> Self { + Self { + iter: 8, + node: 300_000, + match_: 200_000, + } + } } /// Used for interval analysis and constant folding diff --git a/src/llm.rs b/src/llm.rs new file mode 100644 index 00000000..ea80c6f5 --- /dev/null +++ b/src/llm.rs @@ -0,0 +1,78 @@ +use std::env; +use std::io::Write; + +use openai_api_rs::v1::{ + api::OpenAIClient, + chat_completion::{self, ChatCompletionRequest}, +}; + +pub fn models() -> Vec { + vec![ + // "meta-llama/llama-3.3-70b-instruct".to_string(), + "deepseek/deepseek-chat-v3-0324".to_string(), + "google/gemini-2.5-flash-preview".to_string(), + "openai/gpt-4o-mini".to_string(), + "openai/gpt-4.1".to_string(), + ] +} + +pub async fn query(prompt: &str, model: &str) -> Vec { + let api_key = env::var("OPENROUTER_API_KEY").expect("API_KEY not set"); + let mut client = OpenAIClient::builder() + .with_endpoint("https://openrouter.ai/api/v1") + .with_api_key(api_key) + .build() + .unwrap(); + let req = ChatCompletionRequest::new( + model.to_string(), + vec![chat_completion::ChatCompletionMessage { + role: chat_completion::MessageRole::user, + content: chat_completion::Content::Text(prompt.to_string()), + name: None, + tool_calls: None, + tool_call_id: None, + }], + ); + + let res = client.chat_completion(req).await; + if res.is_ok() { + let res = res.unwrap().choices[0].message.content.clone().unwrap(); + + let lines: Vec = res + .lines() + .map(|line| line.split(';').next().unwrap_or("").trim()) // take before `;`, trim whitespace + .filter(|line| !line.is_empty()) // skip empty lines + .map(String::from) + .collect(); + + let filename = format!("llm/out/{}-response.txt", model.replace("/", "-")); + let mut file = + std::fs::File::create(filename).unwrap_or_else(|_| panic!("Failed to open file")); + writeln!(file, "{}", lines.join("\n")).expect("unable to write"); + + lines + } else { + eprintln!("Error: {:?}", res); + vec![] + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[tokio::test] + async fn test_query() { + // Skip this test in github actions + if std::env::var("CI").is_ok() && std::env::var("SKIP_RECIPES").is_ok() { + return; + } + + let models: Vec = models(); + let prompt = "What are the standard Boolean Algebra Axioms?"; + for model in models { + let response = query(prompt, &model).await; + assert!(!response.is_empty()); + } + } +} diff --git a/src/logger.rs b/src/logger.rs index 17be3f29..4af70a38 100644 --- a/src/logger.rs +++ b/src/logger.rs @@ -38,6 +38,23 @@ fn add_json_to_file(json: Value) { .expect("Unable to write to json file"); } +pub fn skip_derive(a: &str, b: &str) -> bool { + // Items in this list will *not* run derivability + // Format is (a, b) where a and b are spec/baseline names + // and a.derive(b) will *not* run. + // Note: b.derive(a) will still be computed unless (b, a) + // is also in this list. + let pairs = [ + ("herbie", "rational_replicate"), + ("herbie", "rational_best"), + ]; + + // Items in this list will not run derivability a.derive(b) for any b + let skip_all = ["halide"]; + + skip_all.contains(&a) || pairs.contains(&(a, b)) +} + /** * Constructs a JSON object that corresponds to a single row of the baseline * derivability table (Tables 2 and 3) @@ -55,21 +72,11 @@ pub fn write_baseline( baseline_name: &str, time: Duration, ) { - // Items in this list will *not* run derivability - // Format is (a, b) where a and b are spec/baseline names - // and a.derive(b) will *not* run. - // Note: b.derive(a) will still be computed unless (b, a) - // is also in this list. - let skip_derive = [ - ("herbie", "rational_replicate"), - ("herbie", "rational_best"), - ]; - let loc = count_lines(spec_name) .map(|x| x.to_string()) .unwrap_or_else(|| "-".to_string()); - let enumo_derives_baseline = if skip_derive.contains(&(spec_name, baseline_name)) { + let enumo_derives_baseline = if skip_derive(spec_name, baseline_name) { json!({}) } else { json!({ @@ -78,7 +85,7 @@ pub fn write_baseline( }) }; - let baseline_derives_enumo = if skip_derive.contains(&(baseline_name, spec_name)) { + let baseline_derives_enumo = if skip_derive(baseline_name, spec_name) { json!({}) } else { json!({ diff --git a/src/recipe_utils.rs b/src/recipe_utils.rs index af9771fe..2fcc373e 100644 --- a/src/recipe_utils.rs +++ b/src/recipe_utils.rs @@ -46,7 +46,15 @@ fn run_workload_internal( }; let num_prior = prior.len(); - let (chosen, _) = candidates.minimize(prior, Scheduler::Compress(minimize_limits)); + println!("Starting minimize with {} candidates", candidates.len()); + let start = Instant::now(); + let (chosen, _) = candidates.minimize(prior, Scheduler::Compress(minimize_limits), 1); + let duration = start.elapsed(); + println!( + "Finished minimize with {} rules, {:?}", + chosen.len(), + duration + ); let time = t.elapsed().as_secs_f64(); if chosen.is_empty() && !allow_empty { @@ -61,7 +69,7 @@ fn run_workload_internal( num_prior ); - chosen.pretty_print(); + // chosen.pretty_print(); chosen } @@ -124,7 +132,7 @@ pub fn run_fast_forwarding( candidates.extend(Ruleset::extract_candidates(&eg_denote, &eg_final)); let chosen = candidates - .minimize(prior, Scheduler::Compress(minimize_limits)) + .minimize(prior, Scheduler::Compress(minimize_limits), 1) .0; let time = t.elapsed().as_secs_f64(); diff --git a/tests/bool.rs b/tests/bool.rs index 825a9730..e1fdcc06 100644 --- a/tests/bool.rs +++ b/tests/bool.rs @@ -1,5 +1,6 @@ use ruler::{enumo::Scheduler, *}; use std::ops::*; +use z3::ast::Ast; #[path = "./recipes/bool.rs"] pub mod bool; @@ -105,8 +106,19 @@ impl SynthLanguage for Bool { } } - fn validate(_lhs: &Pattern, _rhs: &Pattern) -> ValidationResult { - ValidationResult::Valid + fn validate(lhs: &Pattern, rhs: &Pattern) -> ValidationResult { + let mut cfg = z3::Config::new(); + cfg.set_timeout_msec(1000); + let ctx = z3::Context::new(&cfg); + let solver = z3::Solver::new(&ctx); + let lexpr = egg_to_z3(&ctx, Self::instantiate(lhs).as_ref()); + let rexpr = egg_to_z3(&ctx, Self::instantiate(rhs).as_ref()); + solver.assert(&lexpr._eq(&rexpr).not()); + match solver.check() { + z3::SatResult::Unsat => ValidationResult::Valid, + z3::SatResult::Unknown => ValidationResult::Unknown, + z3::SatResult::Sat => ValidationResult::Invalid, + } } fn is_constant(&self) -> bool { @@ -118,6 +130,34 @@ impl SynthLanguage for Bool { } } +fn egg_to_z3<'a>(ctx: &'a z3::Context, expr: &[Bool]) -> z3::ast::Bool<'a> { + let mut buf = vec![]; + for node in expr.as_ref().iter() { + match node { + Bool::Not(x) => buf.push(z3::ast::Bool::not(&buf[usize::from(*x)])), + Bool::And([x, y]) => buf.push(z3::ast::Bool::and( + &ctx, + &[&buf[usize::from(*x)], &buf[usize::from(*y)]], + )), + Bool::Or([x, y]) => buf.push(z3::ast::Bool::or( + &ctx, + &[&buf[usize::from(*x)], &buf[usize::from(*y)]], + )), + Bool::Xor([x, y]) => buf.push(z3::ast::Bool::xor( + &buf[usize::from(*x)], + &buf[usize::from(*y)], + )), + Bool::Implies([x, y]) => buf.push(z3::ast::Bool::implies( + &buf[usize::from(*x)], + &buf[usize::from(*y)], + )), + Bool::Lit(c) => buf.push(z3::ast::Bool::from_bool(&ctx, *c)), + Bool::Var(sym) => buf.push(z3::ast::Bool::new_const(&ctx, sym.to_string())), + } + } + buf.pop().unwrap() +} + #[cfg(test)] mod test { use super::*; @@ -147,7 +187,7 @@ mod test { let egraph = scheduler.run(&atoms3.to_egraph(), &all_rules); let mut candidates = Ruleset::cvec_match(&egraph); - let rules3 = candidates.minimize(all_rules.clone(), scheduler).0; + let rules3 = candidates.minimize(all_rules.clone(), scheduler, 1).0; all_rules.extend(rules3); let atoms4 = iter_bool(4); @@ -155,7 +195,7 @@ mod test { let egraph = scheduler.run(&atoms4.to_egraph(), &all_rules); candidates = Ruleset::cvec_match(&egraph); - let rules4 = candidates.minimize(all_rules.clone(), scheduler).0; + let rules4 = candidates.minimize(all_rules.clone(), scheduler, 1).0; all_rules.extend(rules4); let atoms5 = iter_bool(5); @@ -163,7 +203,7 @@ mod test { let egraph = scheduler.run(&atoms5.to_egraph(), &all_rules); candidates = Ruleset::cvec_match(&egraph); - let rules5 = candidates.minimize(all_rules.clone(), scheduler).0; + let rules5 = candidates.minimize(all_rules.clone(), scheduler, 1).0; all_rules.extend(rules5); let expected: Ruleset = Ruleset::new(&[ @@ -294,6 +334,57 @@ mod test { logger::write_baseline(&rules, "bool", &baseline, "oopsla", duration); } + #[test] + fn test_wkld_as_lang() { + let wkld = Workload::new([ + "((& x y z) false)", + "(^ x y (-> z))", + "(-> x y (| z false))", + "(-> x y (-> z))", + "(x (& x y (| z)))", + "((& (~ z) x y))", + "((| (~ z) x y))", + "((^ (~ z) x y))", + "((-> (~ z) x y))", + "(~ (| y false))", + "(~ (| z true))", + "(~ (| z false))", + "(y (| x y (-> z)))", + "(z (^ x y (~ z)))", + "(& x (& y (~ (& z true))))", + "(| x (| y (~ (| z false))))", + "(^ x (^ y (~ (^ z true))))", + "(-> x (-> y (~ (-> z false))))", + "(~ ((& (~ x) y) z))", + "(~ ((| (~ x) y) z))", + "(~ ((^ (~ x) y) z))", + "(~ ((-> (~ x) y) z))", + "true", + "false", + ]); + assert!(wkld.force().len() == 24); + let valid = wkld.as_lang::(); + assert!(valid.force().len() == 9); + } + + #[test] + fn test_validate() { + let rules: Ruleset = Ruleset::new(&[ + "(^ ?b ?a) ==> (^ ?a ?b)", + "(& ?b ?a) ==> (& ?a ?b)", + "(| ?b ?a) ==> (| ?a ?b)", + "(^ ?a true) ==> (~ ?a)", + "(^ true ?a) ==> (~ ?a)", + "(^ ?a (~ ?a)) ==> false", // unsound + "(& ?a ?a) ==> ?a", + "?a ==> (~ (~ ?a))", + ]); + + let (sound, unsound) = rules.partition(|r| r.is_valid()); + assert!(sound.len() == 7); + assert!(unsound.len() == 1); + } + #[test] fn round_trip_to_file() { let rules: Ruleset = Ruleset::new(&[ diff --git a/tests/bv32.rs b/tests/bv32.rs index 8fa7dc71..e8981e24 100644 --- a/tests/bv32.rs +++ b/tests/bv32.rs @@ -24,7 +24,7 @@ impl Bv { let mut candidates = Ruleset::cvec_match(&compressed); let num_prior = prior.len(); - let chosen = candidates.minimize(prior, Scheduler::Compress(limits)).0; + let chosen = candidates.minimize(prior, Scheduler::Compress(limits), 1).0; let time = t.elapsed().as_secs_f64(); println!( diff --git a/tests/exponential.rs b/tests/exponential.rs index 6b83d16b..693a8aab 100644 --- a/tests/exponential.rs +++ b/tests/exponential.rs @@ -6,6 +6,7 @@ use std::time::Instant; use num::rational::Ratio; use num::BigInt; +use ruler::enumo::{Ruleset, Scheduler}; use ruler::*; #[path = "./recipes/exponential.rs"] pub mod exponential; @@ -19,11 +20,12 @@ egg::define_language! { "exp" = Exp(Id), "log" = Log(Id), "pow" = Pow([Id; 2]), + "^" = Pow2([Id; 2]), "sqrt" = Sqrt(Id), "cbrt" = Cbrt(Id), // arithmetic operators - "~" = Neg(Id), + "-" = Neg(Id), "+" = Add([Id; 2]), "-" = Sub([Id; 2]), "*" = Mul([Id; 2]), @@ -31,6 +33,7 @@ egg::define_language! { "if" = If([Id; 3]), // (for compatibility with rationals) "fabs" = Abs(Id), + "abs" = Abs2(Id), // constants Num(Rational), @@ -112,11 +115,45 @@ impl SynthLanguage for Exponential { } } +impl Exponential { + fn validate_all(candidates: &Ruleset, rules: &Ruleset) -> Ruleset { + let scheduler = Scheduler::Saturating(Limits::deriving()); + let mut egraph: EGraph = Default::default(); + for (_, candidate) in candidates { + egraph.add_expr(&Self::instantiate(&candidate.lhs)); + egraph.add_expr(&Self::instantiate(&candidate.rhs)); + } + let out_egraph = scheduler.run(&egraph, rules); + + let mut valid: Ruleset = Ruleset::default(); + for (_, candidate) in candidates { + let l_id = out_egraph + .lookup_expr(&Self::instantiate(&candidate.lhs)) + .expect("Did not find lhs"); + let r_id = out_egraph + .lookup_expr(&Self::instantiate(&candidate.rhs)) + .expect("Did not find rhs"); + if l_id == r_id { + valid.add(candidate.clone()); + } else { + println!("Unable to verify {}", candidate); + } + } + + valid + } +} + #[cfg(test)] mod test { + use std::io::Write; + use std::{fs::OpenOptions, io}; + use super::*; use crate::exponential::make_rules; + use dotenv::dotenv; use ruler::enumo; + use serde_json::{json, to_string_pretty}; type Ruleset = enumo::Ruleset; @@ -124,10 +161,10 @@ mod test { Ruleset::new(&[ // exponential properties (expand) "(exp (+ ?a ?b)) ==> (* (exp ?a) (exp ?b))", - "(exp (~ ?a)) ==> (/ 1 (exp ?a))", + "(exp (- ?a)) ==> (/ 1 (exp ?a))", // exponential properties (simplify) "(* (exp ?a) (exp ?b)) ==> (exp (+ ?a ?b))", - "(/ 1 (exp ?a)) ==> (exp (~ ?a))", + "(/ 1 (exp ?a)) ==> (exp (- ?a))", "(exp 0) ==> 1", // inverse properties "(log (exp ?a)) ==> ?a", @@ -148,12 +185,12 @@ mod test { "?a ==> (- ?a 0)", "(/ ?a 1) ==> ?a", "?a ==> (/ ?a 1)", - "(/ ?a -1) ==> (~ ?a)", - "(~ ?a) ==> (/ ?a -1)", - "(- 0 ?a) ==> (~ ?a)", - "(~ ?a) ==> (- 0 ?a)", - "(* ?a -1) ==> (~ ?a)", - "(~ ?a) ==> (* ?a -1)", + "(/ ?a -1) ==> (- ?a)", + "(- ?a) ==> (/ ?a -1)", + "(- 0 ?a) ==> (- ?a)", + "(- ?a) ==> (- 0 ?a)", + "(* ?a -1) ==> (- ?a)", + "(- ?a) ==> (* ?a -1)", "(- ?a ?a) ==> (* ?a 0)", "(* ?a 0) ==> (- ?a ?a)", "(+ ?a 1) ==> (- ?a -1)", @@ -164,8 +201,8 @@ mod test { "(/ (- -1 ?a) ?a) ==> (* (+ ?a 1) (/ -1 ?a))", "(* (/ -1 ?a) (- 1 ?a)) ==> (/ (- ?a 1) ?a)", "(/ (- ?a 1) ?a) ==> (* (/ -1 ?a) (- 1 ?a))", - "(- (/ ?a ?a) (/ 0 ?a)) ==> (* (~ ?a) (/ -1 ?a))", - "(* (~ ?a) (/ -1 ?a)) ==> (- (/ ?a ?a) (/ 0 ?a))", + "(- (/ ?a ?a) (/ 0 ?a)) ==> (* (- ?a) (/ -1 ?a))", + "(* (- ?a) (/ -1 ?a)) ==> (- (/ ?a ?a) (/ 0 ?a))", "(* (- 1 ?a) (/ 1 ?a)) ==> (/ (- 1 ?a) ?a)", "(/ (- 1 ?a) ?a) ==> (* (- 1 ?a) (/ 1 ?a))", "(* ?a (/ 1 ?a)) ==> (- (/ ?a ?a) (/ 0 ?a))", @@ -296,4 +333,220 @@ mod test { logger::write_baseline(&rules, "exponential", &herbie, "herbie", duration); } + + fn write(f: &str, s: &str) -> io::Result<()> { + let mut file = OpenOptions::new().append(true).create(true).open(f)?; + + writeln!(file, "{}", s)?; + Ok(()) + } + + #[test] + fn establish_baseline() { + let rules_t = Instant::now(); + let rules = make_rules(); + let duration = rules_t.elapsed(); + let _ = write( + "jfp/baseline/log.txt", + &format!("ENUMO EXP | {} rules | {:?}", rules.len(), duration), + ); + rules.to_file("jfp/baseline/enumo_exp.rules"); + } + + fn write_derivability(rules: Ruleset, rules_name: &str, against: &Ruleset, against_name: &str) { + let derive_t = Instant::now(); + let (can, cannot) = rules.derive(ruler::DeriveType::LhsAndRhs, against, Limits::deriving()); + let derive_t_elapsed = derive_t.elapsed(); + let v = json!({ + "duration": derive_t_elapsed, + "num_rules": rules.len(), + "num_against": against.len(), + "can": can.to_str_vec(), + "cannot": cannot.to_str_vec() + }); + + let _ = write( + "jfp/cs1/exp/log.txt", + &format!( + "{rules_name}->{against_name} | {:.3} ({:.1?})", + can.len() as f64 / against.len() as f64, + derive_t_elapsed + ), + ); + let filename = format!("jfp/cs1/exp/{rules_name}-{against_name}-derive.json"); + let _ = write(&filename, &to_string_pretty(&v).unwrap()); + } + + fn start_rules() -> Ruleset { + let syntax_rules = + Ruleset::new(["(pow ?x ?y) <=> (^ ?x ?y", "(abs ?x ?y) <=> (fabs ?x ?y)"]); + let mut rules = Exponential::get_exploratory_rules(); + rules.extend(rational_rules()); + rules.extend(starting_exponential_rules()); + rules.extend(syntax_rules); + rules + } + + #[tokio::test] + async fn case_study1() { + dotenv().ok(); + + let rational_rules = rational_rules(); + let herbie_baseline = Ruleset::from_file("baseline/herbie-exp.rules"); + let enumo_baseline = Ruleset::from_file("jfp/baseline/enumo_exp.rules"); + + let prompt = " + Your task is to perform rule inference for equality saturation. + The domain is exponential functions, as follows: + Values: real numbers + Unary operators: -, exp, log, sqrt, cbrt + Binary operators: +, -, *, /, pow + + Terms must be written using s-expressions and prefix notation. + For example, (a + b) is not a valid term, but (+ a b) is a valid term. + Variables are ?x, ?y, and ?z. + + Binary operators must have exactly two operands. For example, (+ 1 2 3) is not a valid term, but (+ 1 (+ 2 3)) is. + Do not use any operators or syntax not listed here. + Do not use imaginary numbers. + All of the rules should use `exp`, `log`, `sqrt`, `cbrt`, or `pow`. + You may assume there is already a good set of rewrite rules for `-`, `-`, `+`, and `/`. + + Your task is to generate sound, useful, and complete rewrite rules for the domain. + The set of rewrite rules should be sufficient to decide the equality between any two terms in the domain. + A rewrite rule has the form `l ==> r` where `l` and `r` are valid terms from the domain that are always equivalent. + Print only the rules, one rule per line, with no additional text or explanation. + "; + let rules_t = Instant::now(); + let candidates = Ruleset::from_llm(&prompt).await; + let _ = write( + "jfp/cs1/exp/log.txt", + &format!( + "{} rule candidates in {:?}", + candidates.len(), + rules_t.elapsed() + ), + ); + candidates.to_file("jfp/cs1/exp/candidates.rules"); + let sound_t = Instant::now(); + let mut sound = Exponential::validate_all(&candidates, &start_rules()); + let _ = write( + "jfp/cs1/exp/log.txt", + &format!("{} sound rules in {:?}", sound.len(), sound_t.elapsed()), + ); + sound.to_file("jfp/cs1/exp/sound.rules"); + let minimize_t = Instant::now(); + let (minimized_sound, _) = sound.minimize( + rational_rules.clone(), + Scheduler::Compress(Limits::minimize()), + 1, + ); + let _ = write( + "jfp/cs1/exp/log.txt", + &format!( + "{} minimized sound rules in {:?}", + minimized_sound.len(), + minimize_t.elapsed() + ), + ); + minimized_sound.to_file("jfp/cs1/exp/LLM-1.rules"); + + write_derivability( + minimized_sound.union(&rational_rules), + "LLM-1-RAT", + &enumo_baseline, + "Enumo", + ); + + write_derivability( + minimized_sound.union(&rational_rules), + "LLM-1-RAT", + &herbie_baseline, + "Herbie", + ); + + write_derivability( + enumo_baseline.union(&rational_rules), + "Enumo", + &minimized_sound, + "LLM-1", + ); + + let reprompt = format!( + " + The following are rewrite rules for exponential functions: + {} + + These rules will be used for equality saturation. + Are there any rules missing? Please generate the missing rules. + A rewrite rule has the form `l ==> r` where `l` and `r` are valid terms from the domain that are always equivalent. + Print only the rules, one rule per line, with no additional text or explanation. + ", + minimized_sound.to_str_vec().join("\n") + ); + let repromped_candidates = Ruleset::from_llm(&reprompt).await; + let _ = write( + "jfp/cs1/exp/log.txt", + &format!( + "{} rule candidates (reprompted) in {:?}", + candidates.len(), + rules_t.elapsed() + ), + ); + repromped_candidates.to_file("jfp/cs1/exp/reprompted-candidates.rules"); + let sound_t = Instant::now(); + let mut reprompted_sound = Exponential::validate_all(&repromped_candidates, &start_rules()); + reprompted_sound.to_file("jfp/cs1/exp/reprompted-sound.rules"); + let _ = write( + "jfp/cs1/exp/log.txt", + &format!( + "{} sound rules (reprompted) in {:?}", + reprompted_sound.len(), + sound_t.elapsed() + ), + ); + + let minimize_t = Instant::now(); + let (min_reprompted_sound, _) = reprompted_sound.minimize( + rational_rules.clone().union(&minimized_sound), + Scheduler::Compress(Limits::minimize()), + 1, + ); + let _ = write( + "jfp/cs1/exp/log.txt", + &format!( + "{} minimized sound rules in {:?}", + min_reprompted_sound.len(), + minimize_t.elapsed() + ), + ); + minimized_sound + .union(&min_reprompted_sound) + .to_file("jfp/cs1/exp/LLM-2.rules"); + + write_derivability( + min_reprompted_sound + .union(&minimized_sound) + .union(&rational_rules), + "LLM-2-RAT", + &enumo_baseline, + "Enumo", + ); + + write_derivability( + min_reprompted_sound + .union(&minimized_sound) + .union(&rational_rules), + "LLM-2-RAT", + &herbie_baseline, + "Herbie", + ); + + write_derivability( + enumo_baseline.union(&rational_rules), + "Enumo", + &min_reprompted_sound.union(&minimized_sound), + "LLM-2", + ); + } } diff --git a/tests/halide.rs b/tests/halide.rs index 066b7e6b..65358d84 100644 --- a/tests/halide.rs +++ b/tests/halide.rs @@ -103,6 +103,97 @@ impl SynthLanguage for Pred { } } + fn mk_interval<'a, F>(&'a self, mut get_interval: F) -> Interval + where + F: FnMut(&'a Id) -> &'a Interval, + { + let mut get_const = |x| { + let ival = get_interval(x); + if ival.low == ival.high { + ival.low.clone() + } else { + None + } + }; + let val = match self { + Pred::Lit(n) => Some(n.clone()), + Pred::Lt([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(if x < y { 1 } else { 0 }), + _ => None, + }, + Pred::Leq([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(if x <= y { 1 } else { 0 }), + _ => None, + }, + Pred::Eq([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(if x == y { 1 } else { 0 }), + _ => None, + }, + Pred::Neq([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(if x != y { 1 } else { 0 }), + _ => None, + }, + Pred::Implies([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(if x == 0 || y != 0 { 1 } else { 0 }), + _ => None, + }, + Pred::Not(x) => get_const(x).map(|c| if c == 0 { 1 } else { 0 }), + Pred::Neg(x) => get_const(x).map(|c| -c), + Pred::And([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(if x != 0 && y != 0 { 1 } else { 0 }), + _ => None, + }, + Pred::Or([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(if x != 0 || y != 0 { 1 } else { 0 }), + _ => None, + }, + Pred::Xor([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(if (x != 0) ^ (y != 0) { 1 } else { 0 }), + _ => None, + }, + Pred::Add([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => x.checked_add(y), + _ => None, + }, + Pred::Sub([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => x.checked_sub(y), + _ => None, + }, + Pred::Mul([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => x.checked_mul(y), + _ => None, + }, + Pred::Div([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => { + if y == 0 { + None + } else { + x.checked_div(y) + } + } + _ => None, + }, + Pred::Min([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(x.min(y)), + _ => None, + }, + Pred::Max([x, y]) => match (get_const(x), get_const(y)) { + (Some(x), Some(y)) => Some(x.max(y)), + _ => None, + }, + Pred::Select([x, y, z]) => match (get_const(x), get_const(y), get_const(z)) { + (Some(x), Some(y), Some(z)) => Some(if x == 0 { z } else { y }), + _ => None, + }, + Pred::Var(_) => None, + }; + if val.is_some() { + Interval::new(val, val) + } else { + Interval::new(None, None) + } + } + fn initialize_vars(egraph: &mut EGraph, vars: &[String]) { let consts = vec![ Some((-10).to_i64().unwrap()), @@ -117,6 +208,9 @@ impl SynthLanguage for Pred { egraph.analysis.cvec_len = cvecs[0].len(); + println!("Cvec len: {}", egraph.analysis.cvec_len); + println!("Vars: {:?}", vars); + for (i, v) in vars.iter().enumerate() { let id = egraph.add(Pred::Var(Symbol::from(v.clone()))); let cvec = cvecs[i].clone(); @@ -288,15 +382,417 @@ mod halide; mod test { use crate::halide::halide_rules; use crate::Pred; - use std::time::{Duration, Instant}; - - use ruler::{ - enumo::{Filter, Metric, Ruleset, Workload}, - logger, - recipe_utils::{recursive_rules, run_workload, Lang}, - Limits, + use dotenv::dotenv; + use std::io::Write; + use std::{ + fs::OpenOptions, + io, + time::{Duration, Instant}, }; + use ruler::enumo::{Scheduler, Workload}; + use ruler::recipe_utils::{recursive_rules, Lang}; + use ruler::{enumo::Ruleset, logger, Limits}; + use serde_json::{json, to_string_pretty}; + + fn write(f: &str, s: &str) -> io::Result<()> { + let mut file = OpenOptions::new().append(true).create(true).open(f)?; + + writeln!(file, "{}", s)?; + Ok(()) + } + + fn write_derivability( + rules: Ruleset, + rules_name: &str, + against: &Ruleset, + against_name: &str, + subdir: &str, + ) { + let derive_t = Instant::now(); + let (can, cannot) = rules.derive(ruler::DeriveType::LhsAndRhs, against, Limits::deriving()); + let derive_t_elapsed = derive_t.elapsed(); + let v = json!({ + "duration": derive_t_elapsed, + "num_rules": rules.len(), + "num_against": against.len(), + "can": can.to_str_vec(), + "cannot": cannot.to_str_vec() + }); + let _ = write( + &format!("jfp/{subdir}/halide/log.txt"), + &format!( + "{rules_name}->{against_name} | {:.1} ({:.1?})", + (can.len() as f64 / against.len() as f64) * 100.0, + derive_t_elapsed + ), + ); + let filename = format!("jfp/{subdir}/halide/{rules_name}-{against_name}-derive.json"); + let _ = write(&filename, &to_string_pretty(&v).unwrap()); + } + + #[test] + fn establish_baseline() { + let halide_baseline = Ruleset::from_file("baseline/halide.rules"); + let a5_t = Instant::now(); + let a5: Ruleset = recursive_rules( + ruler::enumo::Metric::Atoms, + 5, + Lang::new( + &["0", "1"], + &["a", "b", "c"], + &[ + &["-", "!"], + &[ + "&&", "||", "^", "+", "-", "*", "min", "max", "<", "<=", "==", "!=", + ], + &["select"], + ], + ), + Ruleset::default(), + ); + let duration = a5_t.elapsed(); + let _ = write( + "jfp/baseline/log.txt", + &format!("ATOMS5 HALIDE | {} rules | {:?}", a5.len(), duration), + ); + a5.to_file("jfp/baseline/atoms5_halide.rules"); + write_derivability(a5.clone(), "A5", &halide_baseline, "Halide", "baseline"); + + write_derivability(a5.clone(), "A5", &a5, "A5", "baseline"); + + let enumo_t = Instant::now(); + let enumo_rules = halide_rules(); + let duration = enumo_t.elapsed(); + let _ = write( + "jfp/baseline/log.txt", + &format!( + "ENUMO HALIDE | {} rules | {:?}", + enumo_rules.len(), + duration + ), + ); + enumo_rules.to_file("jfp/baseline/enumo_halide.rules"); + + write_derivability(a5.clone(), "A5", &enumo_rules, "Enumo", "baseline"); + write_derivability( + enumo_rules.clone(), + "Enumo", + &halide_baseline, + "Halide", + "baseline", + ); + write_derivability(enumo_rules.clone(), "Enumo", &a5, "A5", "baseline"); + write_derivability( + enumo_rules.clone(), + "Enumo", + &enumo_rules, + "Enumo", + "baseline", + ); + } + + #[tokio::test] + async fn case_study1() { + let _ = write("jfp/cs1/halide/log.txt", "Starting Case Study 1"); + dotenv().ok(); + + let halide_baseline = Ruleset::from_file("baseline/halide.rules"); + + let prompt = " + Your task is to perform rule inference for equality saturation. + The domain is boolean logic and arithmetic, as follows: + Values: integers + Unary Operators: -, ! + Binary Operators: <, <=, ==, !=, &&, ||, ^, +, -, *, min, max + Ternary Operators: select + + Terms must be written using s-expressions and prefix notation. + Variables are ?x, ?y, and ?z. + + Your task is to generate sound, useful, and complete rewrite rules for the domain. + The set of rewrite rules should be sufficient to decide the equality between any + two terms in the domain. + You should generate at least 200 rules. + A rewrite rule has the form `l => r` where `l` and `r` are valid terms from + the domain that are always equivalent. + Print only the rules, one rule per line, with no additional text or explanation. + "; + let rules_t = Instant::now(); + let candidates: Ruleset = Ruleset::from_llm(&prompt).await; + let _ = write( + "jfp/cs1/halide/log.txt", + &format!( + "{} rule candidates from LLM | {:?}", + candidates.len(), + rules_t.elapsed() + ), + ); + candidates.to_file("jfp/cs1/halide/LLM-1-candidates.rules"); + + let priors = [ + ("None", Ruleset::default()), + ("A5", Ruleset::from_file("jfp/baseline/atoms5_halide.rules")), + ( + "Enumo", + Ruleset::from_file("jfp/baseline/enumo_halide.rules"), + ), + ]; + + for (prior_name, prior_rules) in &priors { + let mut candidates_copy = candidates.clone(); + let minimize_t = Instant::now(); + let (sound, invalid) = candidates_copy.minimize( + prior_rules.clone(), + Scheduler::Compress(Limits::minimize()), + 1, + ); + let _ = write( + "jfp/cs1/halide/log.txt", + &format!( + "{} | {} selected rules ({} invalid) | {:?}", + prior_name, + sound.len(), + invalid.len(), + minimize_t.elapsed(), + ), + ); + let name = format!("LLM-{prior_name}-1"); + + sound.to_file(&format!("jfp/cs1/halide/{name}.rules")); + + write_derivability( + sound.union(&prior_rules), + &name, + &halide_baseline, + "Halide", + "cs1", + ); + // Don't do Halide->X because Halide rules aren't designed for eqsat + + for (prior_name1, prior_rules1) in &priors { + if prior_rules1.is_empty() { + continue; + } + // LLM-1->X + write_derivability( + sound.union(&prior_rules), + &name, + &prior_rules1, + &prior_name1, + "cs1", + ); + // X->LLM-1 + write_derivability(prior_rules1.clone(), &prior_name1, &sound, &name, "cs1"); + } + + // Reprompt for missing rules + let reprompt = &format!(" + The following are rewrite rules for the domain of boolean logic and arithmetic: + {} + {} + + These rules will be used for equality saturation. + Are there any rules missing? Please generate the missing rules. + A rewrite rule has the form `l ==> r` where `l` and `r` are valid terms from the domain that are always equivalent. + Do not use = or => to write rules, only use ==>. + Print only the rules, one rule per line, with no additional text or explanation. + ", sound.to_str_vec().join("\n"), prior_rules.to_str_vec().join("\n")); + let reprompted_rules_t = Instant::now(); + let mut reprompted_candidates: Ruleset = Ruleset::from_llm(&reprompt).await; + let _ = write( + "jfp/cs1/halide/log.txt", + &format!( + "{} rule candidates (reprompted) | {:?}", + reprompted_candidates.len(), + reprompted_rules_t.elapsed() + ), + ); + reprompted_candidates.to_file(&format!( + "jfp/cs1/halide/LLM-{}-2-candidates.rules", + prior_name + )); + + // Minimize reprompted + let reprompt_minimize_t = Instant::now(); + let (reprompted_sound, invalid) = reprompted_candidates.minimize( + sound.union(&prior_rules), + Scheduler::Compress(Limits::minimize()), + 1, + ); + let _ = write( + "jfp/cs1/halide/log.txt", + &format!( + "{} | Reprompt | {} selected rules ({} invalid) | {:?}", + prior_name, + reprompted_sound.len(), + invalid.len(), + reprompt_minimize_t.elapsed(), + ), + ); + let reprompted_name = format!("LLM-{prior_name}-2"); + + reprompted_sound.to_file(&format!("jfp/cs1/halide/{reprompted_name}.rules")); + + write_derivability( + reprompted_sound.union(&sound).union(&prior_rules), + &reprompted_name, + &halide_baseline, + "Halide", + "cs1", + ); + // Don't do Halide->X because Halide rules aren't designed for eqsat + + for (prior_name1, prior_rules1) in &priors { + if prior_rules1.is_empty() { + continue; + } + // LLM-2->X + write_derivability( + reprompted_sound.union(&sound).union(&prior_rules), + &reprompted_name, + &prior_rules1, + &prior_name1, + "cs1", + ); + + // X->LLM-2 + write_derivability( + prior_rules1.clone(), + &prior_name1, + &reprompted_sound.union(&sound), + &reprompted_name, + "cs1", + ); + } + } + } + + #[tokio::test] + async fn case_study2() { + dotenv().ok(); + let enumo_baseline: Ruleset = Ruleset::from_file("jfp/baseline/enumo_halide.rules"); + let a5_baseline: Ruleset = Ruleset::from_file("jfp/baseline/atoms5_halide.rules"); + let halide_baseline: Ruleset = Ruleset::from_file("baseline/halide.rules"); + let llm_2: Ruleset = Ruleset::from_file("jfp/cs1/halide/LLM-None-1.rules") + .union(&Ruleset::from_file("jfp/cs1/halide/LLM-None-2.rules")); + + let prompt = " + Your task is to perform term enumeration for rule inference. + The domain is boolean logic and arithmetic, as follows: + Values: integers + Unary Operators: -, ! + Binary Operators: <, <=, ==, !=, &&, ||, ^, +, -, *, min, max + Ternary Operators: select + + Terms must be written using s-expressions and prefix notation. + For example, (a + b) is not a valid term, but (+ a b) is a valid term. + Use 0 and 1 for constants and w, x, y, and z for variables. + Do not use any variables other than `w`, `x`, `y`, and `z`. + + Binary operators must have exactly two operands. For example, (+ 1 2 3) is not a valid term, but (+ 1 (+ 2 3)) is. + Do not use any operators or syntax not listed here. + + Your task is to generate a list of terms from this domain, from which a set of rewrite rules will be inferred. + Try to generate pairs of terms that might be equivalent, so that rewrite rules can be inferred. + The generated terms should adequately cover the set of all possible terms. + The generated terms should vary in complexity and size so that they lead to interesting rewrite rules. + You should generate at least 1000 terms. + Your response should not contain `...` or another indicator that you have stopped before finishing term enumeration. + Print only the terms, one term per line, with no additional text or explanation. + "; + let wkld_t = Instant::now(); + let wkld = Workload::from_llm(&prompt) + .await + .as_lang_with_vars::(vec!["w".into(), "x".into(), "y".into(), "z".into()]); + let _ = write( + "jfp/cs2/halide/log.txt", + &format!( + "LLM Workload: {} | {:?}", + wkld.force().len(), + wkld_t.elapsed() + ), + ); + wkld.to_file("jfp/cs2/halide/llm-wkld.terms"); + + let priors = [ + ("None", Ruleset::default()), + ("A5", Ruleset::from_file("jfp/baseline/atoms5_halide.rules")), + ("Enumo", enumo_baseline.clone()), + ("LLM-2", llm_2.clone()), + ]; + for (prior_name, prior_rules) in &priors { + let _ = write("jfp/cs2/halide/log.txt", &format!("--- {prior_name} ---")); + let rule_syn_t = Instant::now(); + // Wkld -> Egraph + let egraph = wkld.to_egraph::(); + println!("Initial egraph size: {}", egraph.number_of_classes()); + + // Run prior rules + let compress_t = Instant::now(); + let compressed = Scheduler::Compress(Limits::synthesis()).run(&egraph, &prior_rules); + println!( + "{} prior rules | {} eclasses | {:?}", + prior_name, + compressed.number_of_classes(), + compress_t.elapsed() + ); + + // cvec match + let cvec_match_t = Instant::now(); + let mut candidates = Ruleset::cvec_match(&compressed); + println!( + "{} candidates | {:?}", + candidates.len(), + cvec_match_t.elapsed() + ); + + // minimize + let minimize_t = Instant::now(); + let (rules, _) = candidates.minimize( + prior_rules.clone(), + Scheduler::Compress(Limits::minimize()), + 1, + ); + println!("{} selected | {:?}", rules.len(), minimize_t); + + let rule_syn_t = rule_syn_t.elapsed(); + let _ = write( + "jfp/cs2/halide/log.txt", + &format!( + "W-{prior_name} | {} rules | rule synth time: {:?}", + rules.len(), + rule_syn_t + ), + ); + rules.to_file(&format!("jfp/cs2/halide/w-{prior_name}.rules")); + + // Derive + let all_rules = rules.union(&prior_rules); + write_derivability( + all_rules.clone(), + &format!("w-{prior_name}"), + &halide_baseline, + "Halide", + "cs2", + ); + write_derivability( + all_rules.clone(), + &format!("w-{prior_name}"), + &a5_baseline, + "A5", + "cs2", + ); + write_derivability( + all_rules.clone(), + &format!("w-{prior_name}"), + &enumo_baseline, + "Enumo", + "cs2", + ); + } + } + #[test] fn run() { // Skip this test in github actions diff --git a/tests/rational.rs b/tests/rational.rs index d2c4fd20..99c139ce 100644 --- a/tests/rational.rs +++ b/tests/rational.rs @@ -389,7 +389,7 @@ impl Math { }; let num_prior = prior.len(); - let (chosen, invalid) = candidates.minimize(prior.clone(), Scheduler::Compress(limits)); + let (chosen, invalid) = candidates.minimize(prior.clone(), Scheduler::Compress(limits), 1); println!( "Found {} valid and {} invalid rules", @@ -417,7 +417,7 @@ impl Math { ); let chosen_conditional = with_condition - .minimize(prior.union(&chosen), Scheduler::Compress(limits)) + .minimize(prior.union(&chosen), Scheduler::Compress(limits), 1) .0; let result = chosen.union(&chosen_conditional); diff --git a/tests/recipes/bool.rs b/tests/recipes/bool.rs index db9b8e0d..4bbfb95e 100644 --- a/tests/recipes/bool.rs +++ b/tests/recipes/bool.rs @@ -12,7 +12,7 @@ pub fn bool_rules() -> Ruleset { Lang::new( &["true", "false"], &["a", "b", "c"], - &[&["~"], &["&", "|", "^"]], + &[&["~"], &["&", "|", "^", "->"]], ), Ruleset::default(), ); diff --git a/tests/recipes/trig.rs b/tests/recipes/trig.rs index 9bd0f7e1..1b958e80 100644 --- a/tests/recipes/trig.rs +++ b/tests/recipes/trig.rs @@ -37,10 +37,10 @@ pub fn trig_rules() -> Ruleset { let simple_terms = app.clone().plug("op", &t_ops).plug( "v", - &Workload::new(["a", "(~ a)", "(+ PI a)", "(- PI a)", "(+ a a)"]), + &Workload::new(["a", "(- a)", "(+ PI a)", "(- PI a)", "(+ a a)"]), ); - let neg_terms = Workload::new(["(~ x)"]).plug("x", &simple_terms); + let neg_terms = Workload::new(["(- x)"]).plug("x", &simple_terms); let squares = Workload::new(["(sqr x)"]) .plug("x", &app) diff --git a/tests/trig.rs b/tests/trig.rs index c5e8207d..af3d4028 100644 --- a/tests/trig.rs +++ b/tests/trig.rs @@ -1,7 +1,7 @@ use num::rational::Ratio; use num::BigInt; use num::{Signed, Zero}; -use ruler::enumo::Ruleset; +use ruler::enumo::{Ruleset, Scheduler}; use ruler::*; use std::fmt; use std::fmt::{Debug, Display, Formatter}; @@ -130,7 +130,7 @@ egg::define_language! { "cis" = Cis(Id), // arithmetic operators - "~" = Neg(Id), + "-" = Neg(Id), "+" = Add([Id; 2]), "-" = Sub([Id; 2]), "*" = Mul([Id; 2]), @@ -156,38 +156,38 @@ impl SynthLanguage for Trig { Ruleset::new(&[ // definition of sine, cosine, tangent // (sine) - "(sin ?a) ==> (/ (- (cis ?a) (cis (~ ?a))) (* 2 I))", - "(/ (- (cis ?a) (cis (~ ?a))) (* 2 I)) ==> (sin ?a)", + "(sin ?a) ==> (/ (- (cis ?a) (cis (- ?a))) (* 2 I))", + "(/ (- (cis ?a) (cis (- ?a))) (* 2 I)) ==> (sin ?a)", // (cosine) - "(cos ?a) ==> (/ (+ (cis ?a) (cis (~ ?a))) 2)", - "(/ (+ (cis ?a) (cis (~ ?a))) 2) ==> (cos ?a)", + "(cos ?a) ==> (/ (+ (cis ?a) (cis (- ?a))) 2)", + "(/ (+ (cis ?a) (cis (- ?a))) 2) ==> (cos ?a)", // (tangent) - "(tan ?a) ==> (* I (/ (- (cis (~ ?a)) (cis ?a)) (+ (cis (~ ?a)) (cis ?a))))", - "(* I (/ (- (cis (~ ?a)) (cis ?a)) (+ (cis (~ ?a)) (cis ?a)))) ==> (tan ?a)", + "(tan ?a) ==> (* I (/ (- (cis (- ?a)) (cis ?a)) (+ (cis (- ?a)) (cis ?a))))", + "(* I (/ (- (cis (- ?a)) (cis ?a)) (+ (cis (- ?a)) (cis ?a)))) ==> (tan ?a)", // (sine, alternatively) - "(sin ?a) ==> (/ (- (* I (cis (~ ?a))) (* I (cis ?a))) 2)", - "(/ (- (* I (cis (~ ?a))) (* I (cis ?a))) 2) => (sin ?a)", + "(sin ?a) ==> (/ (- (* I (cis (- ?a))) (* I (cis ?a))) 2)", + "(/ (- (* I (cis (- ?a))) (* I (cis ?a))) 2) => (sin ?a)", // (cosine, alternatively) - "(cos ?a) ==> (/ (+ (* I (cis ?a)) (* I (cis (~ ?a)))) (* 2 I))", - "(/ (+ (* I (cis ?a)) (* I (cis (~ ?a)))) (* 2 I)) ==> (cos ?a)", + "(cos ?a) ==> (/ (+ (* I (cis ?a)) (* I (cis (- ?a)))) (* 2 I))", + "(/ (+ (* I (cis ?a)) (* I (cis (- ?a)))) (* 2 I)) ==> (cos ?a)", // relating tangent to sine and cosine "(tan ?a) ==> (/ (sin ?a) (cos ?a))", "(/ (sin ?a) (cos ?a)) ==> (tan ?a)", // definition of cos(a)*cos(b) and sin(a)*sin(b) - "(* (cos ?a) (cos ?b)) ==> (/ (+ (+ (cis (- ?a ?b)) (cis (~ (- ?a ?b)))) (+ (cis (+ ?a ?b)) (cis (~ (+ ?a ?b))))) 4)", - "(* (sin ?a) (sin ?b)) ==> (/ (- (+ (cis (- ?a ?b)) (cis (~ (- ?a ?b)))) (+ (cis (+ ?a ?b)) (cis (~ (+ ?a ?b))))) 4)", + "(* (cos ?a) (cos ?b)) ==> (/ (+ (+ (cis (- ?a ?b)) (cis (- (- ?a ?b)))) (+ (cis (+ ?a ?b)) (cis (- (+ ?a ?b))))) 4)", + "(* (sin ?a) (sin ?b)) ==> (/ (- (+ (cis (- ?a ?b)) (cis (- (- ?a ?b)))) (+ (cis (+ ?a ?b)) (cis (- (+ ?a ?b))))) 4)", // definition of cos(a)*sin(b) and sin(a)*cos(b) - "(* (cos ?a) (sin ?b)) ==> (/ (+ (- (cis (+ ?a ?b)) (cis (~ (+ ?a ?b)))) (- (cis (- ?b ?a)) (cis (~ (- ?b ?a))))) (* 4 I))", - "(* (sin ?a) (cos ?b)) ==> (/ (+ (- (cis (+ ?a ?b)) (cis (~ (+ ?a ?b)))) (- (cis (- ?a ?b)) (cis (~ (- ?a ?b))))) (* 4 I))", + "(* (cos ?a) (sin ?b)) ==> (/ (+ (- (cis (+ ?a ?b)) (cis (- (+ ?a ?b)))) (- (cis (- ?b ?a)) (cis (- (- ?b ?a))))) (* 4 I))", + "(* (sin ?a) (cos ?b)) ==> (/ (+ (- (cis (+ ?a ?b)) (cis (- (+ ?a ?b)))) (- (cis (- ?a ?b)) (cis (- (- ?a ?b))))) (* 4 I))", // definition of square "(sqr ?a) ==> (* ?a ?a)", "(* ?a ?a) ==> (sqr ?a)", // [Redundant, but left here so we don't have to compute them again] // definition of cos^2(a) and sin^2(a) - // "(* (cos ?a) (cos ?a)) ==> (/ (+ (+ (sqr (cis ?a)) (sqr (cis (~ ?a)))) 2) 4)", - // "(/ (+ (+ (sqr (cis ?a)) (sqr (cis (~ ?a)))) 2) 4) ==> (* (cos ?a) (cos ?a))", - // "(* (sin ?a) (sin ?a)) ==> (~ (/ (- (+ (sqr (cis ?a)) (sqr (cis (~ ?a)))) 2) 4))", - // "(~ (/ (- (+ (sqr (cis ?a)) (sqr (cis (~ ?a)))) 2) 4)) ==> (* (sin ?a) (sin ?a))", + // "(* (cos ?a) (cos ?a)) ==> (/ (+ (+ (sqr (cis ?a)) (sqr (cis (- ?a)))) 2) 4)", + // "(/ (+ (+ (sqr (cis ?a)) (sqr (cis (- ?a)))) 2) 4) ==> (* (cos ?a) (cos ?a))", + // "(* (sin ?a) (sin ?a)) ==> (- (/ (- (+ (sqr (cis ?a)) (sqr (cis (- ?a)))) 2) 4))", + // "(- (/ (- (+ (sqr (cis ?a)) (sqr (cis (- ?a)))) 2) 4)) ==> (* (sin ?a) (sin ?a))", ]) } @@ -288,7 +288,7 @@ impl SynthLanguage for Trig { } if let Some(v) = to_add { - // add (~ v) if v is negative or v is zero + // add (- v) if v is negative or v is zero if let Trig::RealConst(n) = v { if let Ok(x) = n.as_str().parse::() { if x.is_negative() || x.is_zero() { @@ -312,17 +312,53 @@ impl SynthLanguage for Trig { } } +impl Trig { + fn validate_all(candidates: &Ruleset, rules: &Ruleset) -> Ruleset { + let scheduler = Scheduler::Saturating(Limits::deriving()); + let mut egraph: EGraph = Default::default(); + for (_, candidate) in candidates { + egraph.add_expr(&Self::instantiate(&candidate.lhs)); + egraph.add_expr(&Self::instantiate(&candidate.rhs)); + } + let out_egraph = scheduler.run(&egraph, rules); + + let mut valid: Ruleset = Ruleset::default(); + for (_, candidate) in candidates { + let l_id = out_egraph + .lookup_expr(&Self::instantiate(&candidate.lhs)) + .expect("Did not find lhs"); + let r_id = out_egraph + .lookup_expr(&Self::instantiate(&candidate.rhs)) + .expect("Did not find rhs"); + if l_id == r_id { + valid.add(candidate.clone()); + } else { + println!("Unable to verify {}", candidate); + } + } + println!( + "Validated {} out of {} rules", + valid.len(), + candidates.len() + ); + valid + } +} + #[cfg(test)] mod test { - use std::time::Duration; + use std::io::Write; + use std::{fs::OpenOptions, io, time::Duration}; use super::*; use crate::trig::trig_rules; + use dotenv::dotenv; use ruler::{ enumo::{Filter, Ruleset, Scheduler, Workload}, recipe_utils::run_fast_forwarding, Limits, }; + use serde_json::{json, to_string_pretty}; // Extra rules about `cis` and `I` to "fast-forward" rule synthesis pub fn prior_rules() -> Ruleset { @@ -333,22 +369,242 @@ mod test { // constant folding for cis "(cis 0) ==> 1", "(cis (/ PI 2)) ==> I", - "(cis (~ (/ PI 2))) ==> (~ I)", + "(cis (- (/ PI 2))) ==> (- I)", "(cis PI) ==> -1", // cis identities "(cis (+ ?a ?b)) ==> (* (cis ?a) (cis ?b))", "(* (cis ?a) (cis ?b)) ==> (cis (+ ?a ?b))", - "(cis (- ?a ?b)) ==> (* (cis ?a) (cis (~ ?b)))", - "(* (cis ?a) (cis (~ ?b))) ==> (cis (- ?a ?b))", - "(cis (~ ?a)) ==> (/ 1 (cis ?a))", - "(/ 1 (cis ?a)) ==> (cis (~ ?a))", - "(* (cis ?a) (cis (~ ?a))) ==> 1", + "(cis (- ?a ?b)) ==> (* (cis ?a) (cis (- ?b)))", + "(* (cis ?a) (cis (- ?b))) ==> (cis (- ?a ?b))", + "(cis (- ?a)) ==> (/ 1 (cis ?a))", + "(/ 1 (cis ?a)) ==> (cis (- ?a))", + "(* (cis ?a) (cis (- ?a))) ==> 1", // constant folding I - "(/ 1 I) ==> (~ I)", + "(/ 1 I) ==> (- I)", "(* I I) ==> -1", ]) } + fn write(f: &str, s: &str) -> io::Result<()> { + let mut file = OpenOptions::new().append(true).create(true).open(f)?; + + writeln!(file, "{}", s)?; + Ok(()) + } + + fn start_rules() -> Ruleset { + let mut start_rules: Ruleset = + Ruleset::from_file("scripts/oopsla21/trig/complex.rules"); + start_rules.extend(prior_rules()); + start_rules.extend(Trig::get_exploratory_rules()); + start_rules + } + + #[test] + fn establish_baseline() { + let rules_t = Instant::now(); + let rules = trig_rules(); + let duration = rules_t.elapsed(); + let _ = write( + "jfp/baseline/log.txt", + &format!("ENUMO TRIG | {} rules | {:?}", rules.len(), duration), + ); + rules.to_file("jfp/baseline/enumo_trig.rules"); + } + + fn write_derivability( + rules: Ruleset, + rules_name: &str, + against: &Ruleset, + against_name: &str, + ) { + let derive_t = Instant::now(); + let (can, cannot) = rules.derive(ruler::DeriveType::LhsAndRhs, against, Limits::deriving()); + let derive_t_elapsed = derive_t.elapsed(); + let v = json!({ + "duration": derive_t_elapsed, + "num_rules": rules.len(), + "num_against": against.len(), + "can": can.to_str_vec(), + "cannot": cannot.to_str_vec() + }); + let _ = write( + "jfp/cs1/trig/log.txt", + &format!( + "{rules_name}->{against_name} | {:.3} ({:.1?})", + can.len() as f64 / against.len() as f64, + derive_t_elapsed + ), + ); + let filename = format!("jfp/cs1/trig/{rules_name}-{against_name}-derive.json"); + let _ = write(&filename, &to_string_pretty(&v).unwrap()); + } + + #[tokio::test] + async fn case_study1() { + dotenv().ok(); + + let complex_rules: Ruleset = + Ruleset::from_file("scripts/oopsla21/trig/complex.rules"); + let herbie_baseline: Ruleset = Ruleset::from_file("baseline/herbie-trig.rules"); + let enumo_baseline: Ruleset = Ruleset::from_file("jfp/baseline/enumo_trig.rules"); + + let prompt = " + Your task is to perform rule inference for equality saturation. + The domain is trigonometric functions, as follows: + Values: real numbers, PI + Unary operators: -, sin, cos, tan, sqr + Binary operators: +, -, *, / + + Terms must be written using s-expressions and prefix notation. + For example, (a + b) is not a valid term, but (+ a b) is a valid term. + Variables are ?x, ?y, and ?z. + + Binary operators must have exactly two operands. For example, (+ 1 2 3) is not a valid term, but (+ 1 (+ 2 3)) is. + Do not use any operators or syntax not listed here. + Do not use imaginary numbers. + All of the rules should use `sin`, `cos`, or `tan`. + You may assume there is already a good set of rewrite rules for `-`, `-`, `+`, `/`, and `sqr`. + + Your task is to generate sound, useful, and complete rewrite rules for the domain. + The set of rewrite rules should be sufficient to decide the equality between any two terms in the domain. + A rewrite rule has the form `l ==> r` where `l` and `r` are valid terms from the domain that are always equivalent. + Print only the rules, one rule per line, with no additional text or explanation. + "; + let rules_t = Instant::now(); + let candidates = Ruleset::from_llm(&prompt).await; + let _ = write( + "jfp/cs1/trig/log.txt", + &format!( + "{} rule candidates in {:?}", + candidates.len(), + rules_t.elapsed() + ), + ); + candidates.to_file("jfp/cs1/trig/candidates.rules"); + + let sound_t = Instant::now(); + let mut sound = Trig::validate_all(&candidates, &start_rules()); + let _ = write( + "jfp/cs1/trig/log.txt", + &format!("{} sound rules in {:?}", sound.len(), sound_t.elapsed()), + ); + sound.to_file("jfp/cs1/trig/sound.rules"); + let minimize_t = Instant::now(); + let (minimized_sound, _) = sound.minimize( + complex_rules.clone(), + Scheduler::Compress(Limits::minimize()), + 1, + ); + let _ = write( + "jfp/cs1/trig/log.txt", + &format!( + "{} minimized sound rules in {:?}", + minimized_sound.len(), + minimize_t.elapsed() + ), + ); + minimized_sound.to_file("jfp/cs1/trig/LLM-1.rules"); + + write_derivability( + minimized_sound.union(&complex_rules), + "LLM-1-C", + &enumo_baseline, + "Enumo", + ); + + write_derivability( + minimized_sound.union(&complex_rules), + "LLM-1-C", + &herbie_baseline, + "Herbie", + ); + + write_derivability( + enumo_baseline.union(&complex_rules), + "Enumo", + &minimized_sound, + "LLM-1", + ); + + let reprompt = format!( + " + The following are rewrite rules for exponential functions: + {} + + These rules will be used for equality saturation. + Are there any rules missing? Please generate the missing rules. + A rewrite rule has the form `l ==> r` where `l` and `r` are valid terms from the domain that are always equivalent. + Print only the rules, one rule per line, with no additional text or explanation. + ", + minimized_sound.to_str_vec().join("\n") + ); + let repromped_candidates = Ruleset::from_llm(&reprompt).await; + let _ = write( + "jfp/cs1/trig/log.txt", + &format!( + "{} rule candidates (reprompted) in {:?}", + candidates.len(), + rules_t.elapsed() + ), + ); + repromped_candidates.to_file("jfp/cs1/trig/reprompted-candidates.rules"); + let sound_t = Instant::now(); + let mut reprompted_sound = Trig::validate_all(&repromped_candidates, &start_rules()); + reprompted_sound.to_file("jfp/cs1/trig/reprompted-sound.rules"); + let _ = write( + "jfp/cs1/trig/log.txt", + &format!( + "{} sound rules (reprompted) in {:?}", + reprompted_sound.len(), + sound_t.elapsed() + ), + ); + + let minimize_t = Instant::now(); + let (min_reprompted_sound, _) = reprompted_sound.minimize( + complex_rules.clone().union(&minimized_sound), + Scheduler::Compress(Limits::minimize()), + 1, + ); + let _ = write( + "jfp/cs1/trig/log.txt", + &format!( + "{} minimized sound rules in {:?}", + min_reprompted_sound.len(), + minimize_t.elapsed() + ), + ); + minimized_sound + .union(&min_reprompted_sound) + .to_file("jfp/cs1/trig/LLM-2.rules"); + + write_derivability( + min_reprompted_sound + .union(&minimized_sound) + .union(&complex_rules), + "LLM-2-C", + &enumo_baseline, + "Enumo", + ); + + write_derivability( + min_reprompted_sound + .union(&minimized_sound) + .union(&complex_rules), + "LLM-2-C", + &herbie_baseline, + "Herbie", + ); + + write_derivability( + enumo_baseline.union(&complex_rules), + "Enumo", + &min_reprompted_sound.union(&minimized_sound), + "LLM-2", + ); + } + #[test] fn run() { // Skip this test in github actions @@ -432,7 +688,7 @@ mod test { candidates.extend(Ruleset::extract_candidates(&g2, &g3)); // let (sound, _) = candidates.partition(|r| r.is_valid()); - let (sound, _) = candidates.minimize(minimize.rules, minimize.scheduler); + let (sound, _) = candidates.minimize(minimize.rules, minimize.scheduler, 1); logger::write_ff_phase(phase1, phase2, phase3, start.elapsed(), &sound);