Skip to content

Commit 22d1b1c

Browse files
committed
Fix generate graphics and smtcomp stats-of-benchexec-results data
1 parent 728eafe commit 22d1b1c

File tree

6 files changed

+123
-77
lines changed

6 files changed

+123
-77
lines changed
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
[x] slide1: change authors and affiliations
2-
[ ] slide2: OK
3-
[ ] slide3: 3 -> change numbers + delta to 2024
4-
[ ] slide4-5: OK
5-
[ ] slide6: update; proof exhibition track; as last year comment:
6-
does it apply?
7-
[ ] slide7: update
8-
[ ] slide8-10: update
9-
[ ] -- solver presentations: unknown at this point
10-
[x] slide 11: update
1+
[x] slide1: change authors and affiliations
2+
[ ] slide2: OK
3+
[ ] slide3: 3 -> change numbers + delta to 2024
4+
[ ] slide4-5: OK
5+
[ ] slide6: update; proof exhibition track; as last year comment:
6+
does it apply?
7+
[ ] slide7: update
8+
[ ] slide8-10: update
9+
[ ] -- solver presentations: unknown at this point
10+
[x] slide 11: update
1111
[x] slide 12
12-
[x] slide 13: OK?
13-
[x] slide 14: add best overall metric
14-
[ ] slide 15: OK
15-
[ ] slide 16-28 change/import according to certificates
16-
[ ] slide 29: update
17-
[ ] slide 30: remove?  
18-
[ ] slide 31: update
19-
[x] slide 32: update
20-
[x] slide 33: update name (rm Amazon) 
12+
[x] slide 13: OK?
13+
[x] slide 14: add best overall metric
14+
[ ] slide 15: OK
15+
[ ] slide 16-28 change/import according to certificates
16+
[ ] slide 29: update
17+
[ ] slide 30: remove?  
18+
[ ] slide 31: update
19+
[x] slide 32: update
20+
[x] slide 33: update name (rm Amazon) 
2121
[x] slide 34: update  

data/2025/slides/presresults/slides.tex

Lines changed: 55 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -476,48 +476,48 @@ \section{Solver Presentation}
476476
\end{frame}
477477
}
478478

479-
%\myincludepdf{slides-bitwuzla.pdf}
480-
479+
\myincludepdf{solver/Bitwuzla.pdf}
481480
%\myincludepdf{slides-colibri.pdf}
482481

483-
%%\myincludepdf{slides-cvc5.pdf}
484-
485-
%\myvideopdf{cvc5-NRA-LS}{slides-cvc5-nra-ls.mp4}
486-
487-
%\myvideopdf{iProver}{slides-iProver.mp4}
488-
489-
%\myvideopdf{ismt, Yices-ismt}{slides-ismt.mp4}
490-
491-
%\myincludepdf{slides-ismt-ppt.pdf}
492-
493-
%\myincludepdf{slides-opensmt.pdf}
482+
\begin{frame}
483+
\frametitle{COLIBRI}
494484

495-
%\myvideopdf{Ostrich}{slides-Ostrich.mkv}
485+
\begin{itemize}
486+
\item CP/SMT solver, propagation, no learning
487+
\item QF\_FParith: propagation at the floating point or bitvector level (no bot-blsting)
488+
\item 2025: More propagations for transcendental functions (Could we create a category for them?)
489+
\end{itemize}
490+
\vfill
491+
\includegraphics[height=1cm]{logo_cea.png}
492+
\end{frame}
496493

497-
%\myincludepdf{slides-smtinterpol.pdf}
498494

499-
%\myincludepdf{slides-smtrat.pdf}
500495

501-
%\myvideopdf{UltimateEliminator+MathSAT}{slides-UltimateEliminator.mkv}
496+
\begin{frame}
497+
\frametitle{colibri2}
502498

503-
%\myincludepdf{slides-vampire.pdf}
499+
\begin{itemize}
500+
\item First year participation
501+
\item CP/SMT solver, propagation, no learning
502+
\item Uses Dolmen as parser, so parse all standardized SMT-LIB theories
503+
\item For 2025: participation only in QF\_FParith, many propagators from COLIBRI but nearly no propagators for BV
504+
\item For 2026: add BV propagators ;), participation in quantified theory?
505+
\end{itemize}
506+
\vfill
507+
\includegraphics[height=1cm]{logo_cea.png}
508+
\end{frame}
504509

505-
%\myincludepdf{slides-yaga.pdf}
510+
\myincludepdf{solver/cvc5.pdf}
506511

507-
%\myincludepdf{slides-Yices-2023.pdf}
512+
\myincludepdf{solver/opensmt.pdf}
508513

509-
%\myincludepdf{slides-YicesQS-2025.pdf}
514+
\myincludepdf{solver/ostrich-smt-comp-2025.pdf}
510515

511-
%\myvideopdf{Z3-Z3++}{slides-z3-z3++.mp4}
512-
\begin{frame}
513-
\textcolor{red}{TODO: Add solver slides received through the call}
514-
%
515-
%\frametitle{Z3-Z3++}
516+
\myincludepdf{solver/smtinterpol.pdf}
516517

517-
%\begin{center}
518-
%\url{https://youtu.be/fBB0Wxxf9vA}
519-
%\end{center}
520-
\end{frame}
518+
% \begin{frame}
519+
% \textcolor{red}{TODO: Add solver slides received through the call}
520+
% \end{frame}
521521

522522
\begin{frame}
523523
\frametitle{Other participants}
@@ -903,15 +903,38 @@ \section{Solver Presentation}
903903
\end{itemize}
904904
\end{frame}
905905

906+
%http://localhost:1313/2025/results/qf_fparith-single-query-chart/
907+
%http://localhost:1313/2025/results/lia-single-query-chart/
908+
%http://localhost:1313/2025/results/qf_bitvec-single-query/
909+
%http://localhost:1313/2025/results/qf_strings-single-query/
910+
911+
912+
\begin{frame}{Derived Solver: like any solver?}
906913

907-
\begin{frame}{Derived Solver}
908-
909914
Derived Tool: A derived tool is defined as any solver that is based on and \textbf{extends another SMT
910915
solver} (the base solver) \textbf{from a different group of authors}. In contrast to a wrapper tool, a derived
911916
tool solving a benchmark of \textbf{logic A} is allowed to call an SMT solver to solve a problem for \textbf{logic
912917
A}.
913918
\end{frame}
914919

920+
\begin{frame}
921+
\frametitle{Derived Solver: like any solver?}
922+
\begin{itemize}
923+
\item Some derived solver are very different from the base solver
924+
\item Some derived solver had only a small increment
925+
\end{itemize}
926+
\end{frame}
927+
928+
\begin{frame}
929+
\frametitle{Derived Solver: like any solver?}
930+
\begin{itemize}[<+->]
931+
\item The comparison with the base solver should help see the improvement
932+
\item "Best Family of solver"? Give credit to the base solver
933+
\item Different podium? but we have derived of derived solver
934+
\item What means different enough?
935+
\end{itemize}
936+
\end{frame}
937+
915938
%\begin{frame}{SMT-COMP organizing committee}
916939
%Three people organize the SMT-COMP. In 2026:
917940
%\begin{itemize}

smtcomp/defs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1527,7 +1527,7 @@ class Config:
15271527
"Z3-Inc-Z3++": "Z3-Inc-Z3++-base",
15281528
"Z3-Noodler-Mocha": "Z3-Noodler-Mocha-base",
15291529
"Z3-Owl": "Z3-Owl-base",
1530-
"Z3-Noodler": "Z3-Noodler",
1530+
"Z3-Noodler": "Z3-Noodler-base",
15311531
"z3siri": "z3siri-base",
15321532
"Z3-alpha": "Z3-alpha-base",
15331533
}

smtcomp/generate_graphics.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,7 @@ def create_output(
8080
) -> alt.api.ChartType:
8181

8282
# We are computing the buckets offline because we have too much data
83-
results = results.filter(
84-
c_run == True, c_logic.is_in(set(map(int, logics))) | c_division.is_in(set(map(int, divisions)))
85-
).select(
83+
results = results.filter(c_logic.is_in(set(map(int, logics))) | c_division.is_in(set(map(int, divisions)))).select(
8684
c_file,
8785
c_logic,
8886
c_division,
@@ -94,6 +92,7 @@ def create_output(
9492
)
9593

9694
results_with = results.select(c_file, solver2=c_solver, bucket2=c_bucket, cputime_s2=c_cputime_s, answer2=c_answer)
95+
9796
results = results.join(results_with, on=c_file, how="left")
9897

9998
corr = (
@@ -273,7 +272,7 @@ def generate_pages(config: defs.Config, results: pl.LazyFrame, track: defs.Track
273272
dst = config.web_results
274273
dst.mkdir(parents=True, exist_ok=True)
275274

276-
df_results = results.filter(c_run == True).collect()
275+
df_results = results.filter(c_answer != -1).collect()
277276
results = df_results.lazy()
278277

279278
divisions = list(df_results["division"].unique())

smtcomp/results.py

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,16 @@ def helper_get_results(config: defs.Config, results: List[Path], track: defs.Tra
479479
lf = lf.drop("logic", "participation") # Hack for participation 0 bug move "participation" to on= for 2025,
480480
lf = lf.drop("benchmark_yml", "unsat_core")
481481

482-
selection = smtcomp.selection.helper(config, track).with_columns(track=int(track))
482+
if False:
483+
selection = smtcomp.selection.helper(config, track).drop("result")
484+
else:
485+
if track == defs.Track.Incremental:
486+
selection = pl.read_ipc(config.cached_incremental_benchmarks).lazy()
487+
else:
488+
selection = pl.read_ipc(config.cached_non_incremental_benchmarks).lazy()
489+
selection = intersect(selection, lf.select("file").unique(), on=["file"]).with_columns(selected=True)
490+
491+
selection = selection.with_columns(track=int(track))
483492

484493
selection = (
485494
selection.unique()
@@ -491,36 +500,48 @@ def helper_get_results(config: defs.Config, results: List[Path], track: defs.Tra
491500
.lazy()
492501
)
493502

494-
defaults = {
495-
"division": -1,
496-
"family": -1,
497-
"logic": -1,
498-
"name": "",
499-
"participation": -1,
500-
"selected": True,
501-
}
503+
# defaults = {
504+
# "division": -1,
505+
# "family": -1,
506+
# "logic": -1,
507+
# "name": "",
508+
# "participation": -1,
509+
# "selected": True,
510+
# }
511+
512+
defaults = {}
502513

503514
if track == defs.Track.Incremental:
504-
defaults["check_sats"] = -1
515+
# defaults["check_sats"] = -1
516+
pass
505517
else:
506-
defaults["status"] = -1
507-
defaults["asserts"] = -1
518+
# defaults["status"] = -1
519+
# defaults["asserts"] = -1
520+
pass
508521

509522
if track == defs.Track.Parallel:
510-
defaults["hard"] = True
511-
defaults["unsolved"] = False
523+
# defaults["hard"] = True
524+
# defaults["unsolved"] = False
525+
pass
512526
else:
513-
defaults["current_result"] = -1
514-
defaults["new"] = False
515-
defaults["result"] = -1
516-
defaults["run"] = True
517-
defaults["trivial"] = False
518-
defaults["file_right"] = ""
527+
# defaults["current_result"] = -1
528+
# defaults["new"] = False
529+
# defaults["run"] = True
530+
# defaults["trivial"] = False
531+
# defaults["file_right"] = ""
532+
pass
533+
534+
defaults["cputime_s"] = 0
535+
defaults["nb_answers"] = 0
536+
defaults["memory_B"] = 0
537+
defaults["walltime_s"] = 0
538+
defaults["answer"] = -1
519539

520540
selected = intersect(selection, smtcomp.selection.solver_competing_logics(config), on=["logic", "track"])
541+
521542
selected = add_columns(
522-
lf,
523543
selected,
544+
lf,
524545
on=["file", "solver", "track"],
525546
defaults=defaults,
526547
)

smtcomp/utils.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ def add_columns(dst: pl.LazyFrame, from_: pl.LazyFrame, on: list[str], defaults:
3434
assert on_cols.issubset(dst_cols)
3535
assert on_cols.issubset(from_cols)
3636
assert dst_cols.isdisjoint(from_cols.difference(on_cols))
37+
if from_cols.difference(on_cols) != defaults.keys():
38+
print(set(defaults.keys()).difference(from_cols.difference(on_cols)))
39+
print(from_cols.difference(on_cols).difference(defaults.keys()))
3740
assert from_cols.difference(on_cols) == defaults.keys()
3841
fill_nulls = [pl.col(k).fill_null(value=v) for k, v in defaults.items()]
3942
return dst.join(from_, how="left", on=on, coalesce=True).with_columns(*fill_nulls)

0 commit comments

Comments
 (0)