1 | 1. x: SimpleType 2. r1: Term List 3. ds: Collection(dec()) 4. da: Collection(dec()) 5. de: sig() 6. rho: Decl 7. st1: Collection(SimpleType) 8. e: {[[de]] rho} 9. s: {[[ds]] rho} 10. s': {[[ds]] rho} 11. a: [[st1]] rho 12. tr: trace_env([[da]] rho) 13. trace_consistent_rel(rho;da;tr.proj; < inl(x),r1 > ) 14. l: Term List 15. r1 = l 16. ||l|| = 2 17. x term_types(ds;st1;de;l[0]) 18. x term_types(ds;st1;de;l[1]) list_accum(x,t.x([[t]] 1of(e) s s' a tr);[[relname_eq(x)]] rho 2of(e) ;l) Prop |
2 | 1. y: Label 2. r1: Term List 3. ds: Collection(dec()) 4. da: Collection(dec()) 5. de: sig() 6. rho: Decl 7. st1: Collection(SimpleType) 8. e: {[[de]] rho} 9. s: {[[ds]] rho} 10. s': {[[ds]] rho} 11. a: [[st1]] rho 12. tr: trace_env([[da]] rho) 13. trace_consistent_rel(rho;da;tr.proj; < inr(y),r1 > ) 14. l: Term List 15. r1 = l 16. ||de.rel(y)|| = ||l|| 17. i:. i < ||l|| (de.rel(y))[i] term_types(ds;st1;de;l[i]) list_accum(x,t.x([[t]] 1of(e) s s' a tr);[[relname_other(y)]] rho 2of(e) ;l) Prop |
3 | 1. y: Label 2. r1: Term List 3. ds: Collection(dec()) 4. da: Collection(dec()) 5. de: sig() 6. rho: Decl 7. st1: Collection(SimpleType) 8. e: {[[de]] rho} 9. s: {[[ds]] rho} 10. s': {[[ds]] rho} 11. a: [[st1]] rho 12. tr: trace_env([[da]] rho) 13. trace_consistent_rel(rho;da;tr.proj; < inr(y),r1 > ) 14. l: Term List 15. r1 = l 0||de.rel(y)|| |
4 | 1. y: Label 2. r1: Term List 3. ds: Collection(dec()) 4. da: Collection(dec()) 5. de: sig() 6. rho: Decl 7. st1: Collection(SimpleType) 8. e: {[[de]] rho} 9. s: {[[ds]] rho} 10. s': {[[ds]] rho} 11. a: [[st1]] rho 12. tr: trace_env([[da]] rho) 13. trace_consistent_rel(rho;da;tr.proj; < inr(y),r1 > ) 14. l: Term List 15. r1 = l 0||l|| |
About: