Post on 20-May-2020
BOOKS
Jared Davis Centaur Technology ACL2 Workshop 2015
REPORT!
Jared Davis Centaur Technology ACL2 Workshop 2015
REPORT!BOOKS
COMMUNITY'S WORK
(I'm just a reporter)
Rough ScopeChanges from ACL2 6.3-7.1
(October 2013-May 2015)
NOTE-{6-4,6-5,7-0,7-1}-BOOKS
Current Status
6,450 sources 1,000 dirs
2.7 million lines of Lisp
x 10
so far in 2015: 5,726 files changed +1M lines -245K lines
~20 commits per week
How to keep up?
ACL2-Books Google Group
Github, gitk, etc.
Github
Unified ACL2+Books
github.com/acl2
Build System
Don't build so much!cd booksmake -j 4
arithmeticarithmetic-3arithmetic-5ihsdata-structures
Basic Buildstdtoolsmiscxdoc
Customize your build#!/bin/shmake -j 4 basic \ ordinals \ centaur/gl/gl.cert \ coi/bags/top.cert \ ...
More info
Boring stuffBugs fixedReorganizationPortability improvedACL2(r) build unifiedDependencies reducedSlow books sped up ( )Hundreds of Makefiles deleted
accumulatedpersistence
Ooh, Colors!!!
export CERT_PL_NO_COLOR=1
Build Documentation
Build Tools
Build Toolsclean.pl – run anywhere torecursively delete certs, compiledfiles, and so on
memsum.pl – summarize gcmessages from .cert.out files(ccl only)
Name Conflicts
Arithmetic-2/3/5 vs IHSBitops vs RTL (sign-extend)Bitops vs Arithmetic-5COI vs CCG (remove-keywords)COI vs data-structures (package)COI vs Std/osets (deep)COI vs Std/lists (repeat)COI vs Witness-CP
Many Name Clashes Fixed
Standard
Std/Basic (new)● Induction schemes● Basic fixing functions and equivalences
Lists, Alists, Osets, Bitsets● Minor updates
Std/UtilDefine – Awesome defun replacementDefines – define for mutual recursion!! with make-flag integration!!!Defret and ret b* binderDefaggregate/Deflist/Defalist/etc.Defval – defconst with xdoc supportDefsum – primitive sum of aggregatesDefaggrify-defrec – for ACL2 hackersDefredundant – like it sounds
Std/Util
Define-like syntax throughout
Smoothing out the rough edgesWith-outputXDOC integrationPerformance tuningCompatibility with FTY
Std/Strings● Pretty – logic mode pretty printer● Rich numeric functions● Base64 encoding/decoding● Program mode book● Simplified logical definitions● Use define for better docs
Std/IO● Read-string: parse an s-expression from
a string● Print-legibly, print-compressed
Std/typed-lists (new)● For integer-listp, etc.
Xdoc
arithmetic-1arith-equivsbest-practicesbitopsbase64cert.plcowlesclause-processor-toolsdefconsts
New Documentationdefsortdefrstobjdef-universal-equivihsprojects/*rtlset-max-memsneakyplev
FeaturesLegacy docs convertedTopic hierarchy improvementsBrowser speed, compatibilityMobile-friendly edition (yaya!)Link checking, error reportingSearch engine optimization
Quicklisp and OSLIB
Quicklisp
bordeaux-threadscl-fad (pathnames)osicat (filesystem & misc os stuff)uiop (filesystem stuff)shellpool (subprograms)hunchentoot (web server)...
Zach Beane
Quicklisp Buildcd booksmake USE_QUICKLISP=1 ...
New Bundle SystemNo extra downloadsEverything is just in Git
OSLIBFile stuff like ls, cp, rm, mkdirFile type querying like test -dMisc Path and other OS stuffCommand line arguments
(see also getopt)
Arithmetic
Deleted old versionsMoved into a packageGL integration
And …???
RTL
Now in a packageMany new fast functionsScattered theorem improvementsMuch more documentation
Bitops
Hardware Verification
VLVL
VL2014 ESIM
SV
Under DevelopmentGreatly Expanded
Stable
Many GL optimizationsImproved 4v-sexpr/SV rewritingSAT solvers now easily pluggableScripts for SAT proof checkingCross-Lisp portability (e.g., tshell)
New Libraries and Tools
tools/last-theory-changeSee when a rule was last enabled/disabled
centaur/misc/dag-measureA measure for algorithms over acyclic graphs
misc/enumerateA trick for breaking a proof into many cases
remove-hypsIdentify unnecessary hyps in your theorems
tools/rewrite-with-equalityAggressively use equality hyps in stable goals
with-supporters and defredundantAutomatically produce redundant events
flag::def-doublevar-inductionProve congruences about mutual recursions
centaur/nrevAn alternative to nreverse in ACL2
projects/sidekickA graphical add-on for ACL2
system/toothbrushCreate smaller ACL2-based applications
depgraphGeneric graph algorithms (topological sort,
transitive dependencies, inversion, …)
projects/codewalker
projects/hybrid-systemsShant Harutuntian's PhD
spacewalkUnderstand heap memory usage (CCL only)
simpAsk ACL2 to simplify a term under certain hyps
misc/check-fn-instCheck constraints to a functional instantiation
def-saved-obligsSave proof obligations as separate defthms
drat-trimCheck SAT solver proofs
clause-processors/inductionA clause processor that does induction
numerous new demos and examples
Licensing
AMD & Intel (RTL)Centaur & FriendsComputational LogicCOI BooksKrug (Arithmetic)Northeastern (Ordinals)
OracleRagerSelfridgeUT Austin
Omissions
7.1 onwardsx86 books(!)cgen/defdatafty, smtlink, etc.ACL2(r) stuffdemosprobably lots more
Report Any Problems!
!BOOKSThanks
Everyone(Now get back to work!)