ในระดับปฏิบัติสัญญามีการยืนยัน มันช่วยให้คุณตรวจสอบคุณสมบัติ (ไม่มีตัวนับ) ของการประมวลผลแต่ละโปรแกรม แนวคิดหลักที่เป็นหัวใจของการตรวจสอบสัญญาคือความคิดในการตำหนิ - โดยพื้นฐานแล้วคุณต้องการที่จะรู้ว่าใครเป็นฝ่ายผิดสัญญา นี่อาจเป็นการนำไปใช้ (ซึ่งไม่ได้คำนวณค่าตามที่สัญญาไว้) หรือผู้เรียก (ที่ผ่านฟังก์ชั่นการเรียงลำดับของค่าที่ไม่ถูกต้อง)
ข้อมูลเชิงลึกที่สำคัญคือคุณสามารถติดตามการตำหนิโดยใช้เครื่องจักรเดียวกับคู่การฝังแบบฝังในการสร้างขีด จำกัด ผกผันของทฤษฎีโดเมน โดยทั่วไปคุณเปลี่ยนจากการทำงานกับการยืนยันเป็นการทำงานร่วมกับการยืนยันคู่หนึ่งซึ่งหนึ่งในนั้นจะโทษบริบทของโปรแกรมและอีกส่วนหนึ่งที่โทษโปรแกรม จากนั้นสิ่งนี้จะช่วยให้คุณห่อฟังก์ชั่นที่มีลำดับสูงกว่าด้วยสัญญาเนื่องจากคุณสามารถจำลองความแปรปรวนของพื้นที่ฟังก์ชั่นได้โดยการสลับคู่คำยืนยัน (ดูตัวอย่างกระดาษของ Nick Benton "Undoing Dynamic Typing" )
ประเภทขึ้นอยู่กับประเภท ประเภทระบุกฎสำหรับการยืนยันว่าโปรแกรมบางอย่างเป็นที่ยอมรับหรือไม่ ด้วยเหตุนี้พวกเขาจึงไม่รวมสิ่งต่าง ๆ เช่นความคิดเรื่องความผิดเนื่องจากหน้าที่ของพวกเขาคือการป้องกันโปรแกรมที่ไม่ดีจากที่มีอยู่ในตอนแรก ไม่มีอะไรที่จะตำหนิได้เพราะโปรแกรมที่มีรูปแบบที่ถูกต้องเพียงอย่างเดียวเท่านั้นยังเป็นคำพูดทางไวยากรณ์ ในทางปฏิบัติสิ่งนี้หมายความว่ามันง่ายมากที่จะใช้ชนิดที่พึ่งพาเพื่อพูดถึงคุณสมบัติของคำศัพท์ที่มีปริมาณ (เช่นฟังก์ชันที่ใช้งานได้กับอินพุตทั้งหมด)
มุมมองทั้งสองนี้ไม่เหมือนกัน แต่มีความสัมพันธ์กัน โดยทั่วไปประเด็นคือว่าด้วยสัญญาเราเริ่มต้นด้วยค่าสากลที่เป็นสากลและใช้สัญญาเพื่อลดสิ่งต่างๆลง แต่เมื่อเราใช้ประเภทเราพยายามระบุโดเมนที่มีค่าน้อยลง (พร้อมคุณสมบัติที่ต้องการ) ไว้ล่วงหน้า ดังนั้นเราจึงสามารถเชื่อมโยงทั้งสองผ่านทางครอบครัวสัมพันธ์ประเภท (เช่นความสัมพันธ์เชิงตรรกะ) ตัวอย่างเช่นดูอาเหม็ด Findler, Siek และ Wadler ล่าสุด"ตำหนิสำหรับทุกคน"หรือนาดส์'ความหมายของประเภท: จากภายในเพื่อภายนอกความหมาย'