Skip to content

Instantly share code, notes, and snippets.

View rindPHI's full-sized avatar

Dominic Steinhöfel rindPHI

View GitHub Profile

Keybase proof

I hereby claim:

  • I am rindphi on github.
  • I am dscheurer (https://keybase.io/dscheurer) on keybase.
  • I have a public key ASDbCaKb2RPNzwWoQM2nVMThGjDdvA_Wm9nSJ_PCyyJMmgo

To claim this, I am signing this object:

@rindPHI
rindPHI / connect-beamer.fish
Created November 30, 2016 08:17
An interactive script for the fish shell, managing the connection to connected screens / beamers especially in cases where the beamer is not recognized, and therefore the normal (graphical) system configuraion tools fail.
#!/usr/bin/fish
set fish_greeting
function res_x_prompt
echo -n 'Please enter the horizontal resolution [1024]: '
end
function res_y_prompt
echo -n 'Please enter the vertical resolution [768]: '
end
@rindPHI
rindPHI / Main.java
Last active February 16, 2017 13:39
Example Usage of the Symbolic Execution API
package example;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import org.key_project.util.collection.ImmutableSLList;
import org.key_project.util.java.StringUtil;
import de.uka.ilkd.key.control.*;
@rindPHI
rindPHI / Gcd.java
Created May 3, 2017 13:00
Method computing the Greatest Common Divisor (GCD) of two integers
/*@ public normal_behavior
@ ensures (a != 0 || b != 0) ==>
@ (a % \result == 0 && b % \result == 0 &&
@ (\forall int x; x > 0 && a % x == 0 && b % x == 0;
@ \result % x == 0));
@*/
public static int gcd(int a, int b) {
if (a < 0) a = -a;
if (b < 0) b = -b;
@rindPHI
rindPHI / Gcd.mps.java
Created May 3, 2017 13:09
Gcd method with merge point specifications
/*@ public normal_behavior
@ ensures (a != 0 || b != 0) ==>
@ (a % \result == 0 && b % \result == 0 &&
@ (\forall int x; x > 0 && a % x == 0 && b % x == 0;
@ \result % x == 0));
@*/
public static int gcd(int a, int b) {
if (a < 0) a = -a;
//@ merge_point
@rindPHI
rindPHI / Find.java
Last active June 29, 2017 09:32
A method finding an element in an integer array, returning -1 if the element has not been found. The source code includes the JML specification covering all facts that our strength analysis tool discovered.
public class Find {
//@ ghost int f_iLastRun;
// Everything covered
/*@ public normal_behavior
@ ensures
@ ((\exists int i; i >= 0 && i < arr.length; arr[i] == n) ==>
@ (arr[\result] == n && \result == f_iLastRun)
@ )
@ && ((\forall int i; i >= 0 && i < arr.length; arr[i] != n) ==> \result == -1)
@rindPHI
rindPHI / Main.java
Created October 10, 2017 11:20
Programmatically using KeY as a program verifier.
package example;
import java.io.File;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.key_project.util.collection.ImmutableSet;
@rindPHI
rindPHI / firstorder.v
Last active September 27, 2018 16:52
An attempt to define the syntax and semantics of a predicate logic language, with a theorem on conservativity of structure extension. It's a failed attempt, therefore it contains "challenges". If somebody knows how to resolve them -- please let me know"
(*
Compile to PDF with
coqc firstorder.v ; coqdoc --latex --no-lib-name -s -p "\usepackage{parskip}\renewcommand{\thesection}{\arabic{section}}" firstorder.v ; pdflatex firstorder.tex
*)
Require Import Coq.Strings.String.
Require Import Coq.Vectors.VectorDef.
Require Import Coq.Relations.Relation_Definitions.
Module firstorder.
@rindPHI
rindPHI / exportInkscapeLayers.py
Last active November 12, 2018 11:45
Python script which extracts PDFs from inkscape layers annotated by LaTeX overlay specifications, for the use in LaTeX beamer presentations. The attached SVG file is an example Inkscape SVG for seeing how it works.
#!/usr/bin/python3
import xml.etree.ElementTree as ET
import re
import sys
import os
import pyperclip
from pathlib import Path
from subprocess import call
###########################################################################
@rindPHI
rindPHI / inkscape2pdfs.py
Created November 29, 2020 11:28
Python script to convert an Inkscape SVG file with LaTeX Beamer-like layer names (e.g., "My layer [3,5-7,10-]") to a series of PDF files for use in, e.g., Beamer presentations, or as a step to create an animated gif.
#!/usr/bin/python3
import xml.etree.ElementTree as ET
import re
import sys
import os
import threading
from pathlib import Path
from subprocess import call
###########################################################################