Data.Vec
이 (가) 있으므로 Vec
은 무엇인지 알고 있습니다.Agda의`Vec`에 안전한`length` 함수를 쓰는 방법은 무엇입니까?
Nat와 Vec이 동형임을 증명하고 싶습니다.
내가 성공적으로 냇가 VEC로 변환 할 수 있습니다 증명하는 함수를 만들었습니다 : I는 해당vec→ℕ
을 쓰기 위해 노력하고있어
ℕ→vec : (n : ℕ) → Vec ⊤ n
ℕ→vec zero = []
ℕ→vec (suc a) = tt ∷ ℕ→vec a
동안, 나는 실패했습니다.
나는 이런 식으로 뭔가를 쓰고 싶어 (이 컴파일되지 않습니다 만 읽을 수의) : 첫 번째 코드에서
vec→ℕ : ∀ {n} → Vec ⊤ n → (n : ℕ)
vec→ℕ [] = zero
vec→ℕ (tt ∷ a) = suc (vec→ℕ a)
, 인수가 반환 값의 길이가 정확히 될 수 있는지를 확인합니다. 그러나 첫 번째 인수의 길이가 반환 값과 정확히 일치하도록하려면 어떻게해야합니까?
고마워요! 실존 유형의 작동 방식을 처음 보았습니다! 당신의 대답은 내 문제를 완벽하게 해결했습니다! : D – ice1000