Một điểm khác biệt nữa giữa Idris và Agda là sự bình đẳng mệnh đề của Idris không đồng nhất, trong khi Agda là đồng nhất.
Nói cách khác, định nghĩa giả định về sự bình đẳng trong Idris sẽ là:
data (=) : {a, b : Type} -> a -> b -> Type where
refl : x = x
trong khi ở Agda, nó là
data _≡_ {l} {A : Set l} (x : A) : A → Set a where
refl : x ≡ x
Chữ l trong định nghĩa Agda có thể bị bỏ qua, vì nó liên quan đến tính đa hình vũ trụ mà Edwin đề cập trong câu trả lời của ông.
Sự khác biệt quan trọng là loại bình đẳng trong Agda lấy hai yếu tố của A làm đối số, trong khi ở Idris, nó có thể lấy hai giá trị với các loại có khả năng khác nhau.
Nói cách khác, trong Idris, người ta có thể tuyên bố rằng hai thứ với các loại khác nhau là bằng nhau (ngay cả khi nó kết thúc là một yêu cầu không thể chứng minh được), trong khi ở Agda, chính tuyên bố này là vô nghĩa.
Điều này có những hậu quả quan trọng và sâu rộng đối với lý thuyết loại, đặc biệt là về tính khả thi khi làm việc với lý thuyết loại đồng luân. Đối với điều này, sự bình đẳng không đồng nhất sẽ không hoạt động vì nó đòi hỏi một tiên đề không phù hợp với HoTT. Mặt khác, có thể nêu các định lý hữu ích với sự bình đẳng không đồng nhất mà không thể được nói thẳng với sự bình đẳng đồng nhất.
Có lẽ ví dụ đơn giản nhất là sự kết hợp của phép nối vector. Cho các danh sách chỉ mục độ dài được gọi là vectơ được xác định như vậy:
data Vect : Nat -> Type -> Type where
Nil : Vect 0 a
(::) : a -> Vect n a -> Vect (S n) a
và nối với loại sau:
(++) : Vect n a -> Vect m a -> Vect (n + m) a
chúng tôi có thể muốn chứng minh rằng:
concatAssoc : (xs : Vect n a) -> (ys : Vect m a) -> (zs : Vect o a) ->
xs ++ (ys ++ zs) = (xs ++ ys) ++ zs
Tuyên bố này là vô nghĩa theo bình đẳng đồng nhất, bởi vì bên trái của đẳng thức có loại Vect (n + (m + o)) a
và bên phải có loại Vect ((n + m) + o) a
. Đó là một tuyên bố hoàn toàn hợp lý với sự bình đẳng không đồng nhất.