Builtin coverage smoke
Insight
The compiled query selected 29 fact(s) after the rule closure was computed.
Main conclusion: :check :member “c”.
Selected conclusions:
- :check :member “c” .
- :check :member “b” .
- :check :formula { :x :p :y . :a :b :c } .
- :check :month 1 .
- :check :year 2024 .
- :check :member “a” .
Explanation
The generated JavaScript starts from 0 compiled source fact(s), applies 1 compiled rule(s), and stops only after a fixpoint is reached.
After saturation, the compiled log:query directive projects only the matching facts shown in the insight, rather than dumping the whole graph.
A compact derivation path is:
- Rule 1: if (2 3 4) math:sum ?sum; (2 3 4) math:product ?product; (9 4) math:difference ?difference; (9 3) math:quotient ?quotient; (9 4) math:integerQuotient ?iq; (9 4) math:remainder ?rem; 3 math:negation ?neg; -3 math:absoluteValue ?abs; 3.141592653589793 math:degrees ?deg; “abc” string:length ?len; (“a” “b” “c”) string:concatenation ?cat; (“item %s %d” “x” 7) string:format ?fmt; “abcdef” string:contains “cd”; “Hello” string:containsIgnoringCase “he”; (“abcdef” “cd(ef)”) string:scrape ?scrape; (“abc” 1) string:charAt ?char; (“abc” 1 “Z”) string:setCharAt ?set; “hello” crypto:sha256 ?sha; (“a” “b” “c”) list:first ?first; (“a” “b” “c”) list:rest ?rest; (“a” “b” “c”) list:last ?last; (“a” “b” “c”) list:length ?listLen; (“a” “b” “c”) list:reverse ?rev; ((“a” “b” “a”) “a”) list:remove ?removed; ((“a”) (“b” “c”)) list:append ?appended; “b” list:in (“a” “b” “c”); (“a” “b” “c”) list:member ?member; “2024-01-02T03:04:05Z” time:year ?year; “2024-01-02T03:04:05Z” time:month ?month; ({ :x :p :y } { :a :b :c }) log:conjunction ?formula, then :check :sum ?sum; :check :product ?product; :check :difference ?difference; :check :quotient ?quotient; :check :integerQuotient ?iq; :check :remainder ?rem; :check :negation ?neg; :check :absoluteValue ?abs; :check :degrees ?deg; :check :stringLength ?len; :check :concatenation ?cat; :check :format ?fmt; :check :scrape ?scrape; :check :charAt ?char; :check :setCharAt ?set; :check :sha256 ?sha; :check :first ?first; :check :rest ?rest; :check :last ?last; :check :listLength ?listLen; :check :reverse ?rev; :check :removed ?removed; :check :appended ?appended; :check :member ?member; :check :year ?year; :check :month ?month; :check :formula ?formula. This produced :check :sum 9 ., :check :product 24 ., :check :difference 5 ., and 24 more
- Rule 1: if (2 3 4) math:sum ?sum; (2 3 4) math:product ?product; (9 4) math:difference ?difference; (9 3) math:quotient ?quotient; (9 4) math:integerQuotient ?iq; (9 4) math:remainder ?rem; 3 math:negation ?neg; -3 math:absoluteValue ?abs; 3.141592653589793 math:degrees ?deg; “abc” string:length ?len; (“a” “b” “c”) string:concatenation ?cat; (“item %s %d” “x” 7) string:format ?fmt; “abcdef” string:contains “cd”; “Hello” string:containsIgnoringCase “he”; (“abcdef” “cd(ef)”) string:scrape ?scrape; (“abc” 1) string:charAt ?char; (“abc” 1 “Z”) string:setCharAt ?set; “hello” crypto:sha256 ?sha; (“a” “b” “c”) list:first ?first; (“a” “b” “c”) list:rest ?rest; (“a” “b” “c”) list:last ?last; (“a” “b” “c”) list:length ?listLen; (“a” “b” “c”) list:reverse ?rev; ((“a” “b” “a”) “a”) list:remove ?removed; ((“a”) (“b” “c”)) list:append ?appended; “b” list:in (“a” “b” “c”); (“a” “b” “c”) list:member ?member; “2024-01-02T03:04:05Z” time:year ?year; “2024-01-02T03:04:05Z” time:month ?month; ({ :x :p :y } { :a :b :c }) log:conjunction ?formula, then :check :sum ?sum; :check :product ?product; :check :difference ?difference; :check :quotient ?quotient; :check :integerQuotient ?iq; :check :remainder ?rem; :check :negation ?neg; :check :absoluteValue ?abs; :check :degrees ?deg; :check :stringLength ?len; :check :concatenation ?cat; :check :format ?fmt; :check :scrape ?scrape; :check :charAt ?char; :check :setCharAt ?set; :check :sha256 ?sha; :check :first ?first; :check :rest ?rest; :check :last ?last; :check :listLength ?listLen; :check :reverse ?rev; :check :removed ?removed; :check :appended ?appended; :check :member ?member; :check :year ?year; :check :month ?month; :check :formula ?formula. This produced :check :member “b” .
- Rule 1: if (2 3 4) math:sum ?sum; (2 3 4) math:product ?product; (9 4) math:difference ?difference; (9 3) math:quotient ?quotient; (9 4) math:integerQuotient ?iq; (9 4) math:remainder ?rem; 3 math:negation ?neg; -3 math:absoluteValue ?abs; 3.141592653589793 math:degrees ?deg; “abc” string:length ?len; (“a” “b” “c”) string:concatenation ?cat; (“item %s %d” “x” 7) string:format ?fmt; “abcdef” string:contains “cd”; “Hello” string:containsIgnoringCase “he”; (“abcdef” “cd(ef)”) string:scrape ?scrape; (“abc” 1) string:charAt ?char; (“abc” 1 “Z”) string:setCharAt ?set; “hello” crypto:sha256 ?sha; (“a” “b” “c”) list:first ?first; (“a” “b” “c”) list:rest ?rest; (“a” “b” “c”) list:last ?last; (“a” “b” “c”) list:length ?listLen; (“a” “b” “c”) list:reverse ?rev; ((“a” “b” “a”) “a”) list:remove ?removed; ((“a”) (“b” “c”)) list:append ?appended; “b” list:in (“a” “b” “c”); (“a” “b” “c”) list:member ?member; “2024-01-02T03:04:05Z” time:year ?year; “2024-01-02T03:04:05Z” time:month ?month; ({ :x :p :y } { :a :b :c }) log:conjunction ?formula, then :check :sum ?sum; :check :product ?product; :check :difference ?difference; :check :quotient ?quotient; :check :integerQuotient ?iq; :check :remainder ?rem; :check :negation ?neg; :check :absoluteValue ?abs; :check :degrees ?deg; :check :stringLength ?len; :check :concatenation ?cat; :check :format ?fmt; :check :scrape ?scrape; :check :charAt ?char; :check :setCharAt ?set; :check :sha256 ?sha; :check :first ?first; :check :rest ?rest; :check :last ?last; :check :listLength ?listLen; :check :reverse ?rev; :check :removed ?removed; :check :appended ?appended; :check :member ?member; :check :year ?year; :check :month ?month; :check :formula ?formula. This produced :check :member “c” .
Evidence
These are the facts selected by the query projection.
:check :sum 9 .
:check :product 24 .
:check :difference 5 .
:check :quotient 3 .
:check :integerQuotient 2 .
:check :remainder 1 .
:check :negation -3 .
:check :absoluteValue 3 .
:check :degrees 180 .
:check :stringLength 3 .
:check :concatenation "abc" .
:check :format "item x 7" .
:check :scrape "ef" .
:check :charAt "b" .
:check :setCharAt "aZc" .
:check :sha256 "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" .
:check :first "a" .
:check :rest ("b" "c") .
:check :last "c" .
:check :listLength 3 .
:check :reverse ("c" "b" "a") .
:check :removed ("b") .
:check :appended ("a" "b" "c") .
:check :member "a" .
:check :year 2024 .
:check :month 1 .
:check :formula { :x :p :y . :a :b :c } .
:check :member "b" .
:check :member "c" .