Parallel Verifier is an optimized parallel verifier for graph based natural deduction proofs, with support for proofs imported from Hyperslate and Lazyslate Classic.
Just natural deduction propositional calculus for now.
./SerialVerifier [proofFilePath]
Set the environmental var to specify how many threads OMP can use, then run the program with a path to a proof file.
export OMP_NUM_THREADS=[NumThreads]
./OMPVerifier [proofFilePath] [VerifierAlg]
More on Args:
- VerifierAlg is OG by default
- VerifierAlg values:
- OG - Original, parallelization of verification of nodes on each layer
- LB - Load balanced, split syntax and semantic check, extra space space on a layer is used to forward syntax check
- BF - Syntax First, syntax check all nodes in parallel, semantic check layer by layer.
mpirun -N [NumRanks] ./MPIVerifier [proofFilePath] [VerifierAlg] [LayerMapAlg]
More on Args:
- VerifierAlg and LayerMapAlg are optional but if one is included, the other must be as well
- VerifierAlg values:
- Alpha - The broken Sp2022 version that uses markings and marking matrices. A layer mapper must be passed in, but it will not be used.
- Original - a worse version that passes extra data rather than using an MPI reduce
- NoOpt - non-optimized MPI implementation with no balancing
- LoadBalance - load balancing optimizations implementation
- LayerMapAlg values
- Serial - Recursive DP O(n) layer mapping algo run on each rank
- MPI - MPI parallel D(n) layer mapping algo
.github
: github actions for testing proofs.vscode
: vscode recommended extensions and settings for the projectbenchmarks
: quick benchmarking utilities to measure performanceproofs
: Proof files to verify onhyperslate
: hyperslate slt proofslazyslate
: lazyslate json proofs
sandbox
: code to test features to implementscripts
: utility scripts for debugging, building, etcsrc
: Source Codetests
: CTest suite
- Include Path Syntax as option 2 from https://stackoverflow.com/a/52144130/6342516.