ProgProving is a LaTeX package that aims to help people prove their codes.
ProgProving requires:
You can find the downloads for each version with their release notes in the releases page.
You can install ProgProving by downloading the package to your folder and importing it into your LaTeX files using :
\usepackage{progproving}This command allows you to easily display the state of a program.
Requires Math mode
Usage :
\state{<constraints>}Example :
\state{x = 1}Example output :
{x = 1}
This command allows you to easily display a sequence of instructions.
Usage :
\seq{<instructions>}Example :
\seq{
& x := 1; \\
& y := 2;
}Example output :
x := 1;
y := 2;
This command allows you to easily display a sp.
Requires Math mode
Usage :
\ppsp{<instruction>}{<state>}Example :
\ppsp{x := 2}{\state{x = 1}}Example output :
sp(x := 2,{x = 1})
This command allows you to easily display a wp.
Requires Math mode
Usage :
\ppwp{<instruction>}{<state>}Example :
\ppwp{x := 2}{\state{x = 1}}Example output :
wp(x := 2,{x = 1})
This command allows you to easily display the precondition letter.
Usage :
\preThis command allows you to easily display the postcondition letter.
Usage :
\postThis command allows you to easily display the invariant letter.
Usage :
\invThis command allows you to easily display the loop condition letter.
Usage :
\condThis command allows you to easily display the loop precondition letter.
Usage :
\lpreThis command allows you to easily display the loop postcondition letter.
Usage :
\lpostThis command allows you to easily display the loop initialisation letters.
Usage :
\initThis command allows you to easily display the loop iteration letters.
Usage :
\iterThis command allows you to easily display the loop termination letters.
Usage :
\termYou can find all contributors here.
All code is licensed for others under MIT (see LICENSE).