Thinnings: 하위 목록 증인과 de Bruijn 인덱스 이동 클러핑
Thinnings는 리스트 내에서 부분 리스트(sublist)를 증명하는 증명 객체(witness data)로, 이를 통해 부분 리스트 여부를 효율적으로 판단하고 검증할 수 있습니다.
비트벡터(bitvector), 프리픽스 합(prefix sum), 인덱스 선택자(index selector) 등 다양한 방식으로 표현 가능하며, 이들은 범주(category) 구조를 이루어 합성(composition)과 항등(identity) 연산이 가능합니다.
또한, de Bruijn 인덱스의 변수 이동(shift) 연산과 밀접하게 연결되어 있으며, 여러 shift 연산을 하나로 압축하는 “mega shift” 개념으로 확장할 수 있습니다.
이러한 thinnings는 람다 계산(lambda calculus)뿐 아니라 다양한 바인더(binder)를 포함하는 수학적 표현에 적용 가능하며, 증명 관련 수학(proof-relevant mathematics)의 관점에서 복잡한 타입 이론에 국한되지 않고 일반 프로그래밍 언어에서도 활용할 수 있습니다.
특히, thinnings를 활용한 유니언 파인드(union-find), 해시 콘스(hash consing) 등의 자료구조 설계에 응용 가능하며, 이는 명명론적(unification) 문제와도 관련되어 있어 향후 확장 가능성이 큽니다.
