Programs and Outputs for Contextual Equivalence in a Probablistic Call-by-Need Lambda Calculus

David Sabel

May 20, 2022

This website links to the source code, inputs and outputs for the automated diagram generation and automated induction for our paper ‘Contextual Equivalence in a Probabilistic Call-by-Need Lambda-Calculus’.

The probablistic call-by-need lambda calculus with recursive let

Calculus description as input for the LRSX tool

The description of the syntax, the standard reduction, and of a set of program transformations as input for the LRSX tool are in file LNEED.inp

Forking Diagrams

Input

The overlap-computation for the forking diagrams is controlled by file lneed_fork.inp.

Output

Commuting Diagrams

Input

Output

TRSs for diagrams and termination proofs

(cp)

(cpx)

(lll)

(ucp) and (gc)

The probablistic call-by-need lambda calculus with recursive let extended by case, constructors and seq

Calculus description as input for the LRSX tool

The description of the standard reduction reduction rules is in file LR-StandardReductions.inp, weak head normal forms are defined in file LR-Answers.inp, contexts are defined in file LR-Contexts.inp, and of a set of program transformations as input for the LRSX tool are in LR-Transformations.inp. Unions of transformations are define in files LR-Unions.inp and LR-MoreUnions.inp.

Forking Diagrams

Input

The overlap-computation for the forking diagrams is controlled by this file.

Output

The overlaps are in: LR-FORK.overlaps.gz The overlaps with joins (=diagrams) including the poofs are in: LR-FORK.inp.proofs.gz The forking diagrams are long version without unions: LR-FORK.long.gz The forking diagrams in short version without unions: LR-FORK.short

(Note that some files are compressed due to their size!)

Commuting Diagrams

Input

The overlap-computation for the commuting diagrams is controlled by this file which imports several other files [LR-COMMUTE.abs.gc.ucp.inp,LR-COMMUTE.cpcx-e.inp,LR-COMMUTE.cpcx-in.inp,LR-COMMUTE.gc.ucp.inp ,LR-COMMUTE.lbeta.cp.lll.inp,LR-COMMUTE.seq.case.xch.cpx.inp]

Output

The overlaps are in: LR-COMMUTE.overlaps.gz The overlaps with joins (=diagrams) including the poofs are in: LR-COMMUTE.inp.proofs.gz The commuting diagrams are long version without unions: LR-COMMUTE.long.gz The commuting diagrams in short version without unions: LR-COMMUTE.short

(Note that some files are compressed due to their size!)

Induction and adapted Diagrams

The following files show the diagrams (which were adapted by hand and compressed) and the corresponding proofs of termination.

Transformation cpcx

Transformation cp

Transformation cpx

Transformation lll

Transformation ug [ucp and gc]

Transformation xch