Salah satu pendekatan untuk pertanyaan semacam itu adalah melalui penyandian .
Katakanlah Anda memiliki bahasa L1 dan bahasa L2 dan Anda ingin menunjukkan bahwa mereka entah bagaimana "sama", Anda dapat melakukan ini dengan menemukan penyandian
[[⋅]]:L1→L2
dan kemudian menunjukkan bahwa untuk semua program yang berikut ini berlaku: M , NL1M,N
M≅1Niff[[M1]]≅2[[M2]]
Di sini adalah gagasan yang dipilih tentang kesetaraan program untuk . Untuk melakukan ini untuk bahasa yang diketik, orang biasanya juga memetakan -jenis ke dengan fungsi yang diperluas ke lingkungan pengetikan, sehingga sesuatu seperti yang dipegang oleh berikut:L i L 1 L 2 ⌜ ⋅ ⌝≅iLiL1L2┌⋅┐
⊢ i L i
Γ⊢1M:αimplies┌Γ┐⊢2[[M]]:┌α┐
Di sini adalah penilaian mengetik untuk . Seluruh pendekatan ini disebut
abstraksi penuh .
⊢iLi
Untuk menghindari "kutukan universalitas Gereja-Turing", orang biasanya memaksakan kondisi pada , misalnya bahwa itu adalah komposisi, atau ditutup dengan penamaan ulang injeksi. Semakin banyak persyaratan bertemu, semakin kuat hasil abstraksi penuh.[[[⋅]][[⋅]]
Ini juga sedang dilakukan oleh Orchard & Yoshida (Teorema 1-5), walaupun mereka tidak cukup mencapainya.