mirror of
https://github.com/Z3Prover/z3
synced 2026-06-19 07:06:28 +00:00
Implement a new seq::derive class (seq_derive.h/cpp) that computes symbolic derivatives of regular expressions using ITE-trees, based on the RE# approach (Varatalu, Veanes, Ernits - POPL 2025). Key features: - Two-argument operator()(ele, r): computes derivative of regex r w.r.t. element ele (concrete character or de Bruijn variable for symbolic mode) - ACI canonicalization (flatten, stable_sort, dedup) for union/intersection - ITE-tree combinators for binary/unary operations - Info-based nullability with recursive fallback - Complement absorption rules - Depth-bounded recursion to prevent stack overflow Integration with seq_rewriter: - mk_derivative(ele, r) and mk_derivative(r) now delegate to m_derive - Removed dead mk_derivative_rec function - Added ITE hoisting in mk_re_star, mk_re_concat, mk_re_union0, mk_re_inter0, mk_re_complement - Added depth limiting in Antimirov derivative helpers Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
129 lines
2 KiB
Text
129 lines
2 KiB
Text
*~
|
|
rebase.cmd
|
|
reports/
|
|
crashes/
|
|
*.pyc
|
|
*.pyo
|
|
# Ignore callgrind files
|
|
callgrind.out.*
|
|
gmon.out
|
|
# .hpp files are automatically generated
|
|
*.hpp
|
|
.env
|
|
.z3-trace
|
|
.env
|
|
genaisrc/jsconfig.json
|
|
genaisrc/genaiscript.d.ts
|
|
.genaiscript
|
|
package-lock.json
|
|
package.json
|
|
node_modules
|
|
# OCaml generated files
|
|
*.a
|
|
*.o
|
|
*.cma
|
|
*.cmo
|
|
*.cmi
|
|
*.cmx
|
|
*.byte
|
|
*.cmxa
|
|
ocamlz3
|
|
# Java generated files
|
|
*.class
|
|
*.jar
|
|
# Emacs temp files
|
|
\#*\#
|
|
# Directories with generated code and documentation
|
|
node_modules/*
|
|
.genaiscript/*
|
|
release/*
|
|
build/*
|
|
trace/*
|
|
build-dist/*
|
|
dist/*
|
|
src/out/*
|
|
doc/html/*
|
|
# GTAGS generated files
|
|
src/GPATH
|
|
src/GRTAGS
|
|
src/GSYMS
|
|
src/GTAGS
|
|
src/HTML/*
|
|
# CSCOPE files
|
|
src/cscope.in.out
|
|
src/cscope.out
|
|
src/cscope.po.out
|
|
ncscope.out
|
|
# CEDET files
|
|
.cproject
|
|
.project
|
|
# Commonly used directories for code
|
|
bld_dbg/*
|
|
bld_rel/*
|
|
bld_dbg_x64/*
|
|
bld_rel_x64/*
|
|
.vscode
|
|
*build*/**
|
|
# Auto generated files.
|
|
config.log
|
|
config.status
|
|
install_tactic.cpp
|
|
mem_initializer.cpp
|
|
gparams_register_modules.cpp
|
|
scripts/config-debug.mk
|
|
scripts/config-release.mk
|
|
src/api/api_commands.cpp
|
|
src/api/api_log_macros.h
|
|
src/api/api_log_macros.cpp
|
|
src/api/dll/api_dll.def
|
|
src/api/dotnet/Enumerations.cs
|
|
src/api/dotnet/Native.cs
|
|
src/api/dotnet/Properties/AssemblyInfo.cs
|
|
src/api/dotnet/Microsoft.Z3.xml
|
|
src/api/python/z3/z3consts.py
|
|
src/api/python/z3/z3core.py
|
|
src/ast/pattern/database.h
|
|
src/util/version.h
|
|
src/util/z3_version.h
|
|
src/api/java/Native.cpp
|
|
src/api/java/Native.java
|
|
src/api/java/enumerations/*.java
|
|
src/api/ml/z3native_stubs.c
|
|
src/api/ml/z3native.ml
|
|
src/api/ml/z3enums.ml
|
|
src/api/ml/z3native.mli
|
|
src/api/ml/z3enums.mli
|
|
src/api/ml/z3.mllib
|
|
src/api/js/node_modules/
|
|
src/api/js/build/
|
|
src/api/js/**/*.__GENERATED__.*
|
|
debug/*
|
|
examples/python/z3
|
|
examples/python/libz3.dll
|
|
|
|
out/**
|
|
*.bak
|
|
doc/api
|
|
doc/code
|
|
.vs
|
|
examples/**/obj
|
|
CMakeSettings.json
|
|
# Editor temp files
|
|
*.swp
|
|
.DS_Store
|
|
dbg/**
|
|
*.wsp
|
|
CppProperties.json
|
|
genaisrc/genblogpost.genai.mts
|
|
*.mts
|
|
# Bazel generated files
|
|
bazel-*
|
|
# Local issue tracking
|
|
.beads
|
|
.z3-agent/
|
|
.playwright*/
|
|
.atomic/
|
|
.deepscan/
|
|
.deeptest/
|
|
tptp_test/
|
|
tptp_benchmarks/
|