Skip to content

Instantly share code, notes, and snippets.

@kik
kik / README
Created June 6, 2014 15:42
TLS in Coq
ちょっとだけ脳内ダンプしたコードがあった
こんな感じにTLSEngineの内部には6個のバッファーがあって、状態遷移は基本的にどっかのバッファーの先頭から取ってきて、
加工した結果をどっかのバッファーの末尾に置くって感じで書く予定だった。
CCSがソケット入力バッファーの先頭にあるときに、ハンドシェークの状態が特定の状態にないといけないのは自明のことで、
本当の興味は他のバッファーの状態がどうなってないといけないのか?ということだったんだー
(defun show-current-char ()
(let ((ch (following-char)))
(format " [U+%04X %s] " ch (get-char-code-property ch 'name))))
(easy-mmode-define-minor-mode show-char-mode
"Toggle Show char mode."
t
(:eval (show-current-char)))
@kik
kik / README.txt
Created October 11, 2014 16:48
ArduinoによるAMラジオテスト用の信号発生器
ブレッドボードで作ったAMラジオが全然動かないので、Arduino Leonardでお手軽に作ったAMラジオの信号発生器
搬送波は1MHzで矩形波なので高調波が乗りまくってると思われる。
音声信号は500-1000Hzぐらいの音階で矩形波。
AM変調は搬送波をon/offするだけ。
5番ピンに適当な長さの電線を繋いでバーアンテナに近づけると動く。
@kik
kik / t.dats
Created January 11, 2015 17:28
初めてのATS2。見たとおりのCのコードにコンパイルされた
#include "share/atspre_define.hats"
#include "share/atspre_staload.hats"
fn foo1(n : bool, dst : &int) : bool =
if n then (
dst := 42;
true
) else (
dst := 0;
false
@kik
kik / socket.dats
Created January 12, 2015 16:16
ATS2でリソース管理。ソケット開いて閉じるだけ。普通のcloseでは失敗する場合のある闇
#include "share/atspre_define.hats"
#include "share/atspre_staload.hats"
staload S = "libc/sys/SATS/socket.sats"
extern
fun socket(af: $S.sa_family_t, st: $S.socktype_t, proto: int) : [fd:int]
(
option_v ($S.socket_v (fd, $S.init), fd >= 0) | int(fd)
) = "mac#socket"
@kik
kik / 1p.cc
Created March 1, 2015 18:55
TLE 2015
#include <set>
#include <string>
#include <iostream>
using namespace std;
int main()
{
int T;
cin >> T;
char buf[2048];
cin.getline(buf, 2048);
@kik
kik / d.rb
Created April 12, 2015 10:26
GCJ2015 Q D
G = 'GABRIEL'
R = 'RICHARD'
def solve(x, r, c)
#p [x, r, c]
if r > c
r, c = c, r
end
# r <= c
2288 n
1741 x
1506 apply
1273 m
1272 auto
1116 rewrite
1016 destruct
961 in
947 a
881 intros
@kik
kik / A.v
Created May 8, 2011 15:37
GCJ 2011 Qual-A 全然だめぽ。下界のひとつを与えられたけど最小かどうか証明できてないバージョン
Require Import ZArith.
Require Import Zminmax.
Require Import List.
Open Scope Z_scope.
Inductive Robo : Set := Blue | Orange.
Inductive Order : Set := order : Robo -> Z -> Order.
Inductive Move : Set := Left | Right | Push | Stay.
Inductive Moves : Set := moves : Move -> Move -> Moves.
@kik
kik / A2.v
Created May 8, 2011 15:40
GCJ 2011 Qual-A やり直し。今度は正しいパスを得られてるけど、最小生の証明ができてない。まだ途中
Require Import ZArith.
Require Import List.
Open Scope Z_scope.
Inductive Robo : Set := Blue | Orange.
Inductive Order : Set := order : Robo -> Z -> Order.
Inductive Move : Set := Left | Right | Stay.
Inductive Moves : Set :=
| moves : Move -> Move -> Moves