Commit Graph
3 Commits
Author SHA1 Message Date
coolguyandClaude Opus 5 994e2362ad thesis: move join 규칙 확정과 affine/linear 경계 명시
두 미해결 항목을 닫는다.

join 규칙 — 보수적 합집합으로 확정. 한 분기에서라도 moved면 병합 지점
이후 moved. 블록당 O(변수 수)로 결정적이고 오류가 한 줄로 끝난다.
경로별 정밀 추적은 오류 설명 가능성을 파는 거래라 채택하지 않고,
"분기 간 불일치 = 에러"는 정당한 코드까지 막아 과잉이다. 조건부 소비의
우회 강요는 인정하는 대가이며, 필요하면 v1에서 관용구로 흡수한다.

affine/linear — v0는 affine이다: 오용 금지, 누수 미검사. 따라서 v0
보안 정리의 범위는 non-duplication까지이며 자원 해제는 주장하지 않는다.
linear 검사와 해제 보장은 v1 과제로 미루되, 암묵적 drop은 선언되지 않은
effect를 실행해 철학 1과 충돌하므로 명시적 소비 강제 방향을 사전 베팅으로
남긴다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZVDeU6KLuUVL3gs18Hm3E
2026-08-30 00:44:08 +09:00
coolguyandClaude Opus 5 bef741e1ba thesis: Alias/Move 모델을 v0 필수로 승격하고 incremental 규칙 정정
"일반 ownership은 v0 제외"를 폐기한다. 없는 것은 borrow checker와
lifetime이지 alias 규칙이 아니며, 최소 move 모델 없이는 "safe code에
data race 없음" 주장이 closure·channel·container 경로에서 새어나간다.

신설:
- Alias/Move 모델: copyable/affine 이분, 전 경로 move, first-class
  reference 없음. 검사는 함수 로컬 데이터플로우로 결정.
- Capability 전달: second-class use가 기본(탈출 금지), 이전 시에만 move.
  non-duplication은 복제 금지이지 재사용 금지가 아니다.
- Affinity 전이: affine 필드를 가진 타입은 자동 affine. 없으면 wrapper
  복사로 non-duplication 정리가 깨진다.
- Effect의 정적/동적 층 분리: 정적 층은 타입 수준까지, 값 identity 귀속은
  동적/툴링 층.

정정:
- interface hash 입력을 exported surface 전체의 의미적 정규형으로 재정의.
- invalidation을 "direct dependents로만 전파"에서 hash 고정점 규칙으로 교체.
  v0 측정 시나리오를 본문 수정 / 시그니처 수정 둘로 분리.
- 형식 명세 투자 범위를 affine 전이 규칙과 non-duplication까지 확장.
- v0 포함/제외 목록과 v1 계획(제한적 second-class borrow) 갱신.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZVDeU6KLuUVL3gs18Hm3E
2026-08-30 00:42:18 +09:00
coolguyandClaude Opus 5 f0739fc40c 초기 커밋: thesis 문서와 OCaml v0 스캐폴딩
문서(docs/thesis.md)에 네 가지 파생 결정을 반영:
- Effect 다형성: effect 변수는 타입 파라미터와 동일 규율(선언 명시,
  해소는 호출 지점에서 로컬). 집합 의미론으로 row polymorphism 회피.
- 인터페이스 경계: public 경계 전면 명시, 본문 추론 누출 금지,
  interface hash는 정규화된 시그니처 텍스트만으로 계산.
- 모듈/패키지: content hash는 무결성이지 가용성이 아님을 명시.
- 형식 명세 범위를 capability의 affine 규칙까지 확장.

스캐폴딩은 CLI 형태만 고정하고 파이프라인 단계는 비워 둔다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZVDeU6KLuUVL3gs18Hm3E
2026-08-30 00:35:48 +09:00