Một chuỗi con chung của hai chuỗi là một chuỗi hình thành từ các ký tự của có mặt trong cả hai chuỗi theo đúng thứ tự. Ví dụ chuỗi "x1yy2zz3tt" và chuỗi "ab1c2de3" có chung chuỗi con "1", "12", "13", "23", "123". Và trong trường hợp này chuỗi con chung lớn nhất là "123" vì nó có độ dài lớn nhất. Vì vậy chúng ta hoàn toàn có thể biểu diễn dạng chung của hai chuỗi trên là "*1*2*3*" trong đó các dấu sao thay thế cho một chuỗi bất kỳ kể cả rỗng. Chúng ta gọi hàm tìm chuỗi con chung là ánh xạ từ danh sách các chuỗi tới một chuỗi.
mcs(string s1, string s2) → (string s)
Số chuỗi càng nhiều thì chuỗi con chung càng ngắn. Đây cũng là đặc điểm chung của các mô hình. Nếu chúng ta tìm đặc điểm chung của càng nhiều đối tượng thì số đặc điểm chung càng ít. Có thể biểu diễn hình thức tính chất này như sau
length(mcs(s1, s2)) ≤ length(mcs(s1, mcs(s2, s3)))
Chuỗi con chung của hai chuỗi giống hệt nhau chính là một trong hai chuỗi. Đây là đặc điểm được dùng để thử nghiệm các triển khai của chuỗi con chung
mcs(a, a) = a
Chuỗi con chung lớn nhất của hai chuỗi đối xứng. Nghĩa là không có chuỗi nào có vai trò lớn hơn trong quá trình mô hình hoá. Đây cũng là tính chất dùng để kiểm chứng các cài đặt
mcs(a, b) = mcs(b, a)
Chuỗi con chung nên có tính chất kết hợp. Nếu chúng ta thực hiện thủ công, có thể tính chất này không đảm bảo do chúng ta chọn những chuỗi con lớn nhất khác nhau khi chúng có cùng độ dài. Nhưng trong cài đặt bằng thủ tục, tính chất kết hợp tồn tại do thủ tục tìm luôn chọn chuỗi con chung lớn nhất đầu tiên.
mcs(a, mcs(b, c)) = mcs(mcs(a, b), c) = mcs(a, b, c)