schema sc_s4_src {
  model source_sql_6 {
    tuple_sql_table:<<class,'2','gid','dname'>>
    tuple_sql_primary_key:<<class_pk,<<class,2,gid,dname>>,'gid'>>
    tuple_sql_table:<<dept,'2','dname','hod'>>
    tuple_sql_primary_key:<<dept_pk,<<dept,2,dname,hod>>,'dname'>>
    tuple_sql_table:<<staff,'4','pname','ccode','title','term'>>
    tuple_sql_primary_key:<<staff_pk,<<staff,4,pname,ccode,title,term>>,'pname','ccode','term'>>
  }
}
pathway sc_s4_src sc_sg {
  transformation {
    [add sc_s4_src sc_s4_src1a:sql_6:table:<<class>>  '[ {k1} | {k1,a1} <- <<class,2>>]' 'True']
  }
  transformation {
    [add sc_s4_src1a sc_s4_src1b:sql_6:column:<<class,'gid'>>  '[ {k1,k1} | {k1,a1} <- <<class,2>>]' 'True']
  }
  transformation {
    [add sc_s4_src1b sc_s4_src1c:sql_6:column:<<class,'dname'>>  '[ {k1,a1} | {k1,a1} <- <<class,2>>]' 'True']
  }
  transformation {
    [add sc_s4_src1c sc_s4_src1d:sql_6:primary_key:<<class_pk,class,<<class,gid>>>>  null null]
  }
  transformation {
    [delete sc_s4_src1d:source_sql_6:tuple_sql_primary_key:<<class_pk,<<class,2,gid,dname>>,'gid'>> sc_s4_src1e  null null]
  }
  transformation {
    [add sc_s4_src1e sc_s4_src1f:sql_6:table:<<staff>>  '[ {k1,k2,k3} | {k1,k2,a1,k3} <- <<staff,4>>]' 'True']
  }
  transformation {
    [add sc_s4_src1f sc_s4_src1g:sql_6:column:<<staff,'pname'>>  '[ {{k1,k2,k3},k1} | {k1,k2,a1,k3} <- <<staff,4>>]' 'True']
  }
  transformation {
    [add sc_s4_src1g sc_s4_src1h:sql_6:column:<<staff,'ccode'>>  '[ {{k1,k2,k3},k2} | {k1,k2,a1,k3} <- <<staff,4>>]' 'True']
  }
  transformation {
    [add sc_s4_src1h sc_s4_src1i:sql_6:column:<<staff,'title'>>  '[ {{k1,k2,k3},a1} | {k1,k2,a1,k3} <- <<staff,4>>]' 'True']
  }
  transformation {
    [add sc_s4_src1i sc_s4_src1j:sql_6:column:<<staff,'term'>>  '[ {{k1,k2,k3},k3} | {k1,k2,a1,k3} <- <<staff,4>>]' 'True']
  }
  transformation {
    [add sc_s4_src1j sc_s4_src1k:sql_6:primary_key:<<staff_pk,staff,<<staff,pname>>,<<staff,ccode>>,<<staff,term>>>>  null null]
  }
  transformation {
    [delete sc_s4_src1k:source_sql_6:tuple_sql_primary_key:<<staff_pk,<<staff,4,pname,ccode,title,term>>,'pname','ccode','term'>> sc_s4_src1l  null null]
  }
  transformation {
    [add sc_s4_src1l sc_s4_src1m:sql_6:table:<<dept>>  '[ {k1} | {k1,a1} <- <<dept,2>>]' 'True']
  }
  transformation {
    [add sc_s4_src1m sc_s4_src1n:sql_6:column:<<dept,'dname'>>  '[ {k1,k1} | {k1,a1} <- <<dept,2>>]' 'True']
  }
  transformation {
    [add sc_s4_src1n sc_s4_src1o:sql_6:column:<<dept,'hod'>>  '[ {k1,a1} | {k1,a1} <- <<dept,2>>]' 'True']
  }
  transformation {
    [add sc_s4_src1o sc_s4_src1p:sql_6:primary_key:<<dept_pk,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [delete sc_s4_src1p:source_sql_6:tuple_sql_primary_key:<<dept_pk,<<dept,2,dname,hod>>,'dname'>> sc_s4_src1q  null null]
  }
  transformation {
    [delete sc_s4_src1q:source_sql_6:tuple_sql_table:<<'class','2','gid','dname'>> sc_s4_src1r  '[ {k1,a1} | {k1} <- <<class>>; {k1,a1} <- <<class,dname>>]' 'True']
  }
  transformation {
    [delete sc_s4_src1r:source_sql_6:tuple_sql_table:<<'staff','4','pname','ccode','title','term'>> sc_s4_src1s  '[ {k1,k2,a1,k3} | {k1,k2,k3} <- <<staff>>; {k1,k2,k3,a1} <- <<staff,title>>]' 'True']
  }
  transformation {
    [delete sc_s4_src1s:source_sql_6:tuple_sql_table:<<'dept','2','dname','hod'>> sc_s4  '[ {k1,a1} | {k1} <- <<dept>>; {k1,a1} <- <<dept,hod>>]' 'True']
  }
  transformation {
    [add sc_s4 sc_t2:sql_6:table:<<someprof>>  'distinct [{k0} | {k,k0} <- <<staff,pname>>]' 'True']
  }
  transformation {
    [add sc_t2 sc_u2:sql_6:column:<<someprof,pname>>  'distinct [{k0,k0} | {k,k0} <- <<staff,pname>>]' 'True']
  }
  transformation {
    [add sc_u2 sc_v2:sql_6:primary_key:<<prof_pk,someprof,<<someprof,pname>>>>  null null]
  }
  transformation {
    [add sc_v2 sc_w2:sql_6:foreign_key:<<studies_fk,staff,<<staff,pname>>,someprof,<<someprof,pname>>>>  null null]
  }
  transformation {
    [extend sc_w2 sc_x2:sql_6:table:<<prof>>  '<<someprof>>' 'True']
  }
  transformation {
    [extend sc_x2 sc_y2:sql_6:column:<<prof,pname>>  '<<someprof,pname>>' 'True']
  }
  transformation {
    [add sc_y2 sc_z2:sql_6:primary_key:<<prof_pk,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [delete sc_z2:sql_6:primary_key:<<prof_pk,someprof,<<someprof,pname>>>> sc_za2  null null]
  }
  transformation {
    [contract sc_za2:sql_6:foreign_key:<<studies_fk,staff,<<staff,pname>>,someprof,<<someprof,pname>>>> sc_zb2  null null]
  }
  transformation {
    [contract sc_zb2:sql_6:column:<<someprof,pname>> sc_zc2  '[{k,a} | k <- <<someprof>>; {k,a} <- <<prof,pname>>]' 'True']
  }
  transformation {
    [delete sc_zc2:sql_6:table:<<someprof>> sc_zd2  'Range Void <<prof>>' 'True']
  }
  transformation {
    [add sc_zd2 sc_ze2:sql_6:table:<<somecourse>>  'distinct [{k0} | {k,k0} <- <<staff,ccode>>]' 'True']
  }
  transformation {
    [add sc_ze2 sc_zf2:sql_6:column:<<somecourse,ccode>>  'distinct [{k0,k0} | {k,k0} <- <<staff,ccode>>]' 'True']
  }
  transformation {
    [add sc_zf2 sc_zg2:sql_6:primary_key:<<course_pk,somecourse,<<somecourse,ccode>>>>  null null]
  }
  transformation {
    [add sc_zg2 sc_zh2:sql_6:column:<<somecourse,title>>  'distinct [{k0,a} | {k,k0} <- <<staff,ccode>>; {k,a} <- <<staff,title>>]' 'True']
  }
  transformation {
    [delete sc_zh2:sql_6:column:<<staff,title>> sc_zi2  '[{ko,a} | {ko,k0} <- <<staff,ccode>>; {kn,k0} <- <<somecourse,ccode>>; {kn,a} <- <<somecourse,title>>]' 'True']
  }
  transformation {
    [extend sc_zi2 sc_zj2:sql_6:table:<<course>>  '<<somecourse>>' 'True']
  }
  transformation {
    [extend sc_zj2 sc_zk2:sql_6:column:<<course,ccode>>  '<<somecourse,ccode>>' 'True']
  }
  transformation {
    [extend sc_zk2 sc_zl2:sql_6:column:<<course,title>>  '<<somecourse,title>>' 'True']
  }
  transformation {
    [add sc_zl2 sc_zm2:sql_6:primary_key:<<course_pk,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [delete sc_zm2:sql_6:primary_key:<<course_pk,somecourse,<<somecourse,ccode>>>> sc_zn2  null null]
  }
  transformation {
    [contract sc_zn2:sql_6:column:<<somecourse,ccode>> sc_zo2  '[{k,a} | k <- <<somecourse>>; {k,a} <- <<course,ccode>>]' 'True']
  }
  transformation {
    [contract sc_zo2:sql_6:column:<<somecourse,title>> sc_zp2  '[{k,a} | k <- <<somecourse>>; {k,a} <- <<course,title>>]' 'True']
  }
  transformation {
    [delete sc_zp2:sql_6:table:<<somecourse>> sc_zq2  'Range Void <<course>>' 'True']
  }
  transformation {
    [extend sc_zq2 sc_zr2:sql_6:table:<<teaches>>  '<<staff>>' 'True']
  }
  transformation {
    [extend sc_zr2 sc_zs2:sql_6:column:<<teaches,pname>>  '<<staff,pname>>' 'True']
  }
  transformation {
    [extend sc_zs2 sc_zt2:sql_6:column:<<teaches,ccode>>  '<<staff,ccode>>' 'True']
  }
  transformation {
    [extend sc_zt2 sc_zu2:sql_6:column:<<teaches,term>>  '<<staff,term>>' 'True']
  }
  transformation {
    [add sc_zu2 sc_zv2:sql_6:primary_key:<<teaches_pk,teaches,<<teaches,pname>>,<<teaches,ccode>>,<<teaches,term>>>>  null null]
  }
  transformation {
    [delete sc_zv2:sql_6:primary_key:<<staff_pk,staff,<<staff,pname>>,<<staff,ccode>>,<<staff,term>>>> sc_zw2  null null]
  }
  transformation {
    [contract sc_zw2:sql_6:column:<<staff,pname>> sc_zx2  '[{k,a} | k <- <<staff>>; {k,a} <- <<teaches,pname>>]' 'True']
  }
  transformation {
    [contract sc_zx2:sql_6:column:<<staff,ccode>> sc_zy2  '[{k,a} | k <- <<staff>>; {k,a} <- <<teaches,ccode>>]' 'True']
  }
  transformation {
    [contract sc_zy2:sql_6:column:<<staff,term>> sc_zz2  '[{k,a} | k <- <<staff>>; {k,a} <- <<teaches,term>>]' 'True']
  }
  transformation {
    [delete sc_zz2:sql_6:table:<<staff>> sc_zza2  'Range Void [k | k <- <<teaches>>; {k,a0} <- <<teaches,term>>; a0<=\'1997-2\']' 'True']
  }
  transformation {
    [extend sc_zza2 sc_zzb2:sql_6:column:<<class,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzb2 sc_zzc2:sql_6:foreign_key:<<in_dept_fk,class,<<class,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzc2 sc_zzd2:sql_6:foreign_key:<<tutor_prof_fk,class,<<class,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzd2 sc_zze2:sql_6:table:<<student>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zze2 sc_zzf2:sql_6:column:<<student,sname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzf2 sc_zzg2:sql_6:column:<<student,dcode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzg2 sc_zzh2:sql_6:column:<<student,gid>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzh2 sc_zzi2:sql_6:primary_key:<<student_pk,student,<<student,sname>>>>  null null]
  }
  transformation {
    [extend sc_zzi2 sc_zzj2:sql_6:foreign_key:<<teaches_prof_fk,teaches,<<teaches,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzj2 sc_zzk2:sql_6:foreign_key:<<teaches_course_fk,teaches,<<teaches,ccode>>,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [extend sc_zzk2 sc_zzl2:sql_6:table:<<attempt>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzl2 sc_zzm2:sql_6:column:<<attempt,sname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzm2 sc_zzn2:sql_6:column:<<attempt,ccode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzn2 sc_zzo2:sql_6:column:<<attempt,term>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzo2 sc_zzp2:sql_6:primary_key:<<attempt_pk,attempt,<<attempt,sname>>,<<attempt,ccode>>,<<attempt,term>>>>  null null]
  }
  transformation {
    [extend sc_zzp2 sc_zzq2:sql_6:foreign_key:<<attempt_student_fk,attempt,<<attempt,sname>>,student,<<student,sname>>>>  null null]
  }
  transformation {
    [extend sc_zzq2 sc_zzr2:sql_6:foreign_key:<<attempt_course_fk,attempt,<<attempt,ccode>>,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [ident sc_zzr2 sc_s2_s4  null null]
  }
  transformation {
    [add sc_s2_s4 sc_s2_s4a:sql_6:table:<<degree>>  '[{dc} | {s,dc} <- <<student,dcode>>]' 'True']
  }
  transformation {
    [add sc_s2_s4a sc_s2_s4b:sql_6:column:<<degree,dcode>>  '[{dc} | {s,dc} <- <<student,dcode>>]' 'True']
  }
  transformation {
    [add sc_s2_s4b sc_s2_s4c:sql_6:column:<<degree,dname>>  '[{dc} | {s,dc} <- <<student,dcode>>; {s,g} <- <<student,gid>>; {g,dn} <- <<class,dname>>]' 'True']
  }
  transformation {
    [contract sc_s2_s4c:sql_6:foreign_key:<<tutor_prof_fk,class,<<class,pname>>,prof,<<prof,pname>>>> sc_s2_s4d  null null]
  }
  transformation {
    [contract sc_s2_s4d:sql_6:foreign_key:<<in_dept_fk,class,<<class,dname>>,dept,<<dept,dname>>>> sc_s2_s4e  null null]
  }
  transformation {
    [contract sc_s2_s4e:sql_6:primary_key:<<class_pk,class,<<class,gid>>>> sc_s2_s4f  null null]
  }
  transformation {
    [contract sc_s2_s4f:sql_6:column:<<class,pname>> sc_s2_s4g  'Range Void Any' 'True']
  }
  transformation {
    [delete sc_s2_s4g:sql_6:column:<<class,dname>> sc_s2_s4h  '[{g,dn} | {s,g} <- <<student,gid>>; {s,dc} <- <<student,dcode>>; {dc,dn} <- <<degree,dname>>]' 'True']
  }
  transformation {
    [delete sc_s2_s4h:sql_6:column:<<class,gid>> sc_s2_s4i  '[{g,g} | {s,g} <- <<student,gid>>]' 'True']
  }
  transformation {
    [delete sc_s2_s4i:sql_6:table:<<class>> sc_s2_s4j  '[{g} | {s,g} <- <<student,gid>>]' 'True']
  }
  transformation {
    [contract sc_s2_s4j:sql_6:column:<<student,gid>> sc_s2_s4k  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4k sc_s2_s4l:sql_6:column:<<prof,area>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4l sc_s2_s4m:sql_6:column:<<dept,subcode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4m sc_s2_s4n:sql_6:primary_key:<<degree_pk,degree,<<degree,dcode>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4n sc_s2_s4o:sql_6:foreign_key:<<runs_dept_fk,degree,<<degree,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4o sc_s2_s4p:sql_6:foreign_key:<<reads_degree_fk,student,<<student,dcode>>,dept,<<degree,dcode>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4p sc_s2_s4q:sql_6:table:<<worksin>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4q sc_s2_s4r:sql_6:column:<<worksin,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4r sc_s2_s4s:sql_6:column:<<worksin,dname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4s sc_s2_s4t:sql_6:primary_key:<<worksin_pk,worksin,<<worksin,pname>>,<<worksin,dname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4t sc_s2_s4u:sql_6:foreign_key:<<worksin_prof_fk,worksin,<<worksin,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4u sc_s2_s4v:sql_6:foreign_key:<<worksin_dept_fk,worksin,<<worksin,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4v sc_s2_s4w:sql_6:column:<<teaches,evaluation>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4w sc_s2_s4x:sql_6:column:<<attempt,cwmark>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4x sc_s2_s4y:sql_6:column:<<attempt,exmark>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4y sc_s2_s4z:sql_6:table:<<advises>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4z sc_s2_s4za:sql_6:column:<<advises,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4za sc_s2_s4zb:sql_6:column:<<advises,sname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4zb sc_s2_s4zc:sql_6:primary_key:<<advises_pk,advises,<<advises,pname>>,<<advises,sname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4zc sc_s2_s4zd:sql_6:foreign_key:<<advises_prof_fk,advises,<<advises,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4zd sc_s2_s4ze:sql_6:foreign_key:<<advises_student_fk,advises,<<advises,sname>>,student,<<student,sname>>>>  null null]
  }
  transformation {
    [ident sc_s2_s4ze sc_su  null null]
  }
  transformation {
    [add sc_su sc_su1a:sql_6:column:<<attempt,mark>>  '[{k,cw+em} | {k,em} <- <<attempt,exmark>>; {k,cw} <- <<attempt,cwmark>>]' 'True']
  }
  transformation {
    [delete sc_su1a:sql_6:column:<<attempt,cwmark>> sc_su1b  '[{k,m-ex} | {k,em} <- <<attempt,exmark>>; {k,m} <- <<attempt,mark>>]' 'True']
  }
  transformation {
    [contract sc_su1b:sql_6:column:<<attempt,exmark>> sc_sg  'Range Void Any' 'True']
  }
}
schema sc_s2_src {
  model source_sql_6 {
    tuple_sql_table:<<teaching,'5','pname','sname','ccode','term','gid'>>
    tuple_sql_primary_key:<<teaching_pk,<<teaching,5,pname,sname,ccode,term,gid>>,'pname','sname','ccode','term'>>
  }
}
pathway sc_s2_src sc_sg {
  transformation {
    [add sc_s2_src sc_s2_src1a:sql_6:table:<<teaching>>  '[ {k1,k2,k3,k4} | {k1,k2,k3,k4,a1} <- <<teaching,5>>]' 'True']
  }
  transformation {
    [add sc_s2_src1a sc_s2_src1b:sql_6:column:<<teaching,'pname'>>  '[ {{k1,k2,k3,k4},k1} | {k1,k2,k3,k4,a1} <- <<teaching,5>>]' 'True']
  }
  transformation {
    [add sc_s2_src1b sc_s2_src1c:sql_6:column:<<teaching,'sname'>>  '[ {{k1,k2,k3,k4},k2} | {k1,k2,k3,k4,a1} <- <<teaching,5>>]' 'True']
  }
  transformation {
    [add sc_s2_src1c sc_s2_src1d:sql_6:column:<<teaching,'ccode'>>  '[ {{k1,k2,k3,k4},k3} | {k1,k2,k3,k4,a1} <- <<teaching,5>>]' 'True']
  }
  transformation {
    [add sc_s2_src1d sc_s2_src1e:sql_6:column:<<teaching,'term'>>  '[ {{k1,k2,k3,k4},k4} | {k1,k2,k3,k4,a1} <- <<teaching,5>>]' 'True']
  }
  transformation {
    [add sc_s2_src1e sc_s2_src1f:sql_6:column:<<teaching,'gid'>>  '[ {{k1,k2,k3,k4},a1} | {k1,k2,k3,k4,a1} <- <<teaching,5>>]' 'True']
  }
  transformation {
    [add sc_s2_src1f sc_s2_src1g:sql_6:primary_key:<<teaching_pk,teaching,<<teaching,pname>>,<<teaching,sname>>,<<teaching,ccode>>,<<teaching,term>>>>  null null]
  }
  transformation {
    [delete sc_s2_src1g:source_sql_6:tuple_sql_primary_key:<<teaching_pk,<<teaching,5,pname,sname,ccode,term,gid>>,'pname','sname','ccode','term'>> sc_s2_src1h  null null]
  }
  transformation {
    [delete sc_s2_src1h:source_sql_6:tuple_sql_table:<<'teaching','5','pname','sname','ccode','term','gid'>> sc_s2  '[ {k1,k2,k3,k4,a1} | {k1,k2,k3,k4} <- <<teaching>>; {k1,k2,k3,k4,a1} <- <<teaching,gid>>]' 'True']
  }
  transformation {
    [delete sc_s2:sql_6:primary_key:<<teaching_pk,teaching,<<teaching,pname>>,<<teaching,sname>>,<<teaching,ccode>>,<<teaching,term>>>> sc_t1  null null]
  }
  transformation {
    [add sc_t1 sc_u1:sql_6:table:<<someteaches>>  'distinct [{k0,k1,k2} | {k,k0} <- <<teaching,pname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>]' 'True']
  }
  transformation {
    [add sc_u1 sc_v1:sql_6:column:<<someteaches,pname>>  'distinct [{{k0,k1,k2},k0} | {k,k0} <- <<teaching,pname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>]' 'True']
  }
  transformation {
    [add sc_v1 sc_w1:sql_6:column:<<someteaches,ccode>>  'distinct [{{k0,k1,k2},k1} | {k,k0} <- <<teaching,pname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>]' 'True']
  }
  transformation {
    [add sc_w1 sc_x1:sql_6:column:<<someteaches,term>>  'distinct [{{k0,k1,k2},k2} | {k,k0} <- <<teaching,pname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>]' 'True']
  }
  transformation {
    [add sc_x1 sc_y1:sql_6:primary_key:<<someteaches_pk,someteaches,<<someteaches,pname>>,<<someteaches,ccode>>,<<someteaches,term>>>>  null null]
  }
  transformation {
    [add sc_y1 sc_z1:sql_6:table:<<someattempt>>  'distinct [{k0,k1,k2} | {k,k0} <- <<teaching,sname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>]' 'True']
  }
  transformation {
    [add sc_z1 sc_za1:sql_6:column:<<someattempt,sname>>  'distinct [{{k0,k1,k2},k0} | {k,k0} <- <<teaching,sname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>]' 'True']
  }
  transformation {
    [add sc_za1 sc_zb1:sql_6:column:<<someattempt,ccode>>  'distinct [{{k0,k1,k2},k1} | {k,k0} <- <<teaching,sname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>]' 'True']
  }
  transformation {
    [add sc_zb1 sc_zc1:sql_6:column:<<someattempt,term>>  'distinct [{{k0,k1,k2},k2} | {k,k0} <- <<teaching,sname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>]' 'True']
  }
  transformation {
    [add sc_zc1 sc_zd1:sql_6:primary_key:<<someattempt_pk,someattempt,<<someattempt,sname>>,<<someattempt,ccode>>,<<someattempt,term>>>>  null null]
  }
  transformation {
    [add sc_zd1 sc_ze1:sql_6:column:<<someattempt,gid>>  'distinct [{{k0,k1,k2},a} | {k,k0} <- <<teaching,sname>>; {k,k1} <- <<teaching,ccode>>; {k,k2} <- <<teaching,term>>; {k,a} <- <<teaching,gid>>]' 'True']
  }
  transformation {
    [delete sc_ze1:sql_6:column:<<teaching,gid>> sc_zf1  '[{{k0,k1,k2,k3},a} | {kt1,k0} <- <<someteaches,pname>>; {kt2,k1} <- <<someattempt,sname>>; {kt1,k2} <- <<someteaches,ccode>>; {kt2,k2} <- <<someattempt,ccode>>; {kt1,k3} <- <<someteaches,term>>; {kt2,k3} <- <<someattempt,term>>; {kt2,a} <- <<someattempt,gid>>]' 'True']
  }
  transformation {
    [delete sc_zf1:sql_6:column:<<teaching,pname>> sc_zg1  '[{{k0,k1,k2,k3},k0} | {k0,k1,k2,k3}<-<<teaching>>]' 'True']
  }
  transformation {
    [delete sc_zg1:sql_6:column:<<teaching,sname>> sc_zh1  '[{{k0,k1,k2,k3},k1} | {k0,k1,k2,k3}<-<<teaching>>]' 'True']
  }
  transformation {
    [delete sc_zh1:sql_6:column:<<teaching,ccode>> sc_zi1  '[{{k0,k1,k2,k3},k2} | {k0,k1,k2,k3}<-<<teaching>>]' 'True']
  }
  transformation {
    [delete sc_zi1:sql_6:column:<<teaching,term>> sc_zj1  '[{{k0,k1,k2,k3},k3} | {k0,k1,k2,k3}<-<<teaching>>]' 'True']
  }
  transformation {
    [delete sc_zj1:sql_6:table:<<teaching>> sc_zk1  '[{k0,k1,k2,k3} | {kt1,k0} <- <<someteaches,pname>>; {kt2,k1} <- <<someattempt,sname>>; {kt1,k2} <- <<someteaches,ccode>>; {kt2,k2} <- <<someattempt,ccode>>; {kt1,k3} <- <<someteaches,term>>; {kt2,k3} <- <<someattempt,term>>]' 'True']
  }
  transformation {
    [add sc_zk1 sc_zl1:sql_6:table:<<somestudent>>  'distinct [{k0} | {k,k0} <- <<someattempt,sname>>]' 'True']
  }
  transformation {
    [add sc_zl1 sc_zm1:sql_6:column:<<somestudent,sname>>  'distinct [{k0,k0} | {k,k0} <- <<someattempt,sname>>]' 'True']
  }
  transformation {
    [add sc_zm1 sc_zn1:sql_6:primary_key:<<student_pk,somestudent,<<somestudent,sname>>>>  null null]
  }
  transformation {
    [add sc_zn1 sc_zo1:sql_6:foreign_key:<<student_fk,someattempt,<<someattempt,sname>>,somestudent,<<somestudent,sname>>>>  null null]
  }
  transformation {
    [add sc_zo1 sc_zp1:sql_6:column:<<somestudent,gid>>  'distinct [{k0,a} | {k,k0} <- <<someattempt,sname>>; {k,a} <- <<someattempt,gid>>]' 'True']
  }
  transformation {
    [delete sc_zp1:sql_6:column:<<someattempt,gid>> sc_zq1  '[{ko,a} | {ko,k0} <- <<someattempt,sname>>; {kn,k0} <- <<somestudent,sname>>; {kn,a} <- <<somestudent,gid>>]' 'True']
  }
  transformation {
    [extend sc_zq1 sc_zr1:sql_6:table:<<teaches>>  '<<someteaches>>' 'True']
  }
  transformation {
    [extend sc_zr1 sc_zs1:sql_6:column:<<teaches,pname>>  '<<someteaches,pname>>' 'True']
  }
  transformation {
    [extend sc_zs1 sc_zt1:sql_6:column:<<teaches,ccode>>  '<<someteaches,ccode>>' 'True']
  }
  transformation {
    [extend sc_zt1 sc_zu1:sql_6:column:<<teaches,term>>  '<<someteaches,term>>' 'True']
  }
  transformation {
    [add sc_zu1 sc_zv1:sql_6:primary_key:<<teaches_pk,teaches,<<teaches,pname>>,<<teaches,ccode>>,<<teaches,term>>>>  null null]
  }
  transformation {
    [delete sc_zv1:sql_6:primary_key:<<someteaches_pk,someteaches,<<someteaches,pname>>,<<someteaches,ccode>>,<<someteaches,term>>>> sc_zw1  null null]
  }
  transformation {
    [contract sc_zw1:sql_6:column:<<someteaches,pname>> sc_zx1  '[{k,a} | k <- <<someteaches>>; {k,a} <- <<teaches,pname>>]' 'True']
  }
  transformation {
    [contract sc_zx1:sql_6:column:<<someteaches,ccode>> sc_zy1  '[{k,a} | k <- <<someteaches>>; {k,a} <- <<teaches,ccode>>]' 'True']
  }
  transformation {
    [contract sc_zy1:sql_6:column:<<someteaches,term>> sc_zz1  '[{k,a} | k <- <<someteaches>>; {k,a} <- <<teaches,term>>]' 'True']
  }
  transformation {
    [delete sc_zz1:sql_6:table:<<someteaches>> sc_zza1  'Range Void <<teaches>>' 'True']
  }
  transformation {
    [extend sc_zza1 sc_zzb1:sql_6:table:<<attempt>>  '<<someattempt>>' 'True']
  }
  transformation {
    [extend sc_zzb1 sc_zzc1:sql_6:column:<<attempt,sname>>  '<<someattempt,sname>>' 'True']
  }
  transformation {
    [extend sc_zzc1 sc_zzd1:sql_6:column:<<attempt,ccode>>  '<<someattempt,ccode>>' 'True']
  }
  transformation {
    [extend sc_zzd1 sc_zze1:sql_6:column:<<attempt,term>>  '<<someattempt,term>>' 'True']
  }
  transformation {
    [add sc_zze1 sc_zzf1:sql_6:primary_key:<<attempt_pk,attempt,<<attempt,sname>>,<<attempt,ccode>>,<<attempt,term>>>>  null null]
  }
  transformation {
    [delete sc_zzf1:sql_6:primary_key:<<someattempt_pk,someattempt,<<someattempt,sname>>,<<someattempt,ccode>>,<<someattempt,term>>>> sc_zzg1  null null]
  }
  transformation {
    [contract sc_zzg1:sql_6:foreign_key:<<student_fk,someattempt,<<someattempt,sname>>,somestudent,<<somestudent,sname>>>> sc_zzh1  null null]
  }
  transformation {
    [contract sc_zzh1:sql_6:column:<<someattempt,sname>> sc_zzi1  '[{k,a} | k <- <<someattempt>>; {k,a} <- <<attempt,sname>>]' 'True']
  }
  transformation {
    [contract sc_zzi1:sql_6:column:<<someattempt,ccode>> sc_zzj1  '[{k,a} | k <- <<someattempt>>; {k,a} <- <<attempt,ccode>>]' 'True']
  }
  transformation {
    [contract sc_zzj1:sql_6:column:<<someattempt,term>> sc_zzk1  '[{k,a} | k <- <<someattempt>>; {k,a} <- <<attempt,term>>]' 'True']
  }
  transformation {
    [delete sc_zzk1:sql_6:table:<<someattempt>> sc_zzl1  'Range Void <<attempt>>' 'True']
  }
  transformation {
    [extend sc_zzl1 sc_zzm1:sql_6:table:<<student>>  '<<somestudent>>' 'True']
  }
  transformation {
    [extend sc_zzm1 sc_zzn1:sql_6:column:<<student,sname>>  '<<somestudent,sname>>' 'True']
  }
  transformation {
    [extend sc_zzn1 sc_zzo1:sql_6:column:<<student,gid>>  '<<somestudent,gid>>' 'True']
  }
  transformation {
    [add sc_zzo1 sc_zzp1:sql_6:primary_key:<<student_pk,student,<<student,sname>>>>  null null]
  }
  transformation {
    [delete sc_zzp1:sql_6:primary_key:<<student_pk,somestudent,<<somestudent,sname>>>> sc_zzq1  null null]
  }
  transformation {
    [contract sc_zzq1:sql_6:column:<<somestudent,sname>> sc_zzr1  '[{k,a} | k <- <<somestudent>>; {k,a} <- <<student,sname>>]' 'True']
  }
  transformation {
    [contract sc_zzr1:sql_6:column:<<somestudent,gid>> sc_zzs1  '[{k,a} | k <- <<somestudent>>; {k,a} <- <<student,gid>>]' 'True']
  }
  transformation {
    [delete sc_zzs1:sql_6:table:<<somestudent>> sc_zzt1  'Range Void <<student>>' 'True']
  }
  transformation {
    [extend sc_zzt1 sc_zzu1:sql_6:table:<<prof>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzu1 sc_zzv1:sql_6:column:<<prof,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzv1 sc_zzw1:sql_6:primary_key:<<prof_pk,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzw1 sc_zzx1:sql_6:table:<<course>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzx1 sc_zzy1:sql_6:column:<<course,ccode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzy1 sc_zzz1:sql_6:column:<<course,title>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzz1 sc_zzza1:sql_6:primary_key:<<course_pk,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [extend sc_zzza1 sc_zzzb1:sql_6:table:<<dept>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzb1 sc_zzzc1:sql_6:column:<<dept,dname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzc1 sc_zzzd1:sql_6:column:<<dept,hod>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzd1 sc_zzze1:sql_6:primary_key:<<dept_pk,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzze1 sc_zzzf1:sql_6:table:<<class>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzf1 sc_zzzg1:sql_6:column:<<class,gid>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzg1 sc_zzzh1:sql_6:column:<<class,dname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzh1 sc_zzzi1:sql_6:column:<<class,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzi1 sc_zzzj1:sql_6:primary_key:<<class_pk,class,<<class,gid>>>>  null null]
  }
  transformation {
    [extend sc_zzzj1 sc_zzzk1:sql_6:foreign_key:<<in_dept_fk,class,<<class,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzzk1 sc_zzzl1:sql_6:foreign_key:<<tutor_prof_fk,class,<<class,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzzl1 sc_zzzm1:sql_6:column:<<student,dcode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzm1 sc_zzzn1:sql_6:foreign_key:<<teaches_prof_fk,teaches,<<teaches,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzzn1 sc_zzzo:sql_6:foreign_key:<<teaches_course_fk,teaches,<<teaches,ccode>>,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [extend sc_zzzo sc_zzzp:sql_6:foreign_key:<<attempt_student_fk,attempt,<<attempt,sname>>,student,<<student,sname>>>>  null null]
  }
  transformation {
    [extend sc_zzzp sc_zzzq:sql_6:foreign_key:<<attempt_course_fk,attempt,<<attempt,ccode>>,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [ident sc_zzzq sc_s2_s4  null null]
  }
  transformation {
    [add sc_s2_s4 sc_s2_s4a:sql_6:table:<<degree>>  '[{dc} | {s,dc} <- <<student,dcode>>]' 'True']
  }
  transformation {
    [add sc_s2_s4a sc_s2_s4b:sql_6:column:<<degree,dcode>>  '[{dc} | {s,dc} <- <<student,dcode>>]' 'True']
  }
  transformation {
    [add sc_s2_s4b sc_s2_s4c:sql_6:column:<<degree,dname>>  '[{dc} | {s,dc} <- <<student,dcode>>; {s,g} <- <<student,gid>>; {g,dn} <- <<class,dname>>]' 'True']
  }
  transformation {
    [contract sc_s2_s4c:sql_6:foreign_key:<<tutor_prof_fk,class,<<class,pname>>,prof,<<prof,pname>>>> sc_s2_s4d  null null]
  }
  transformation {
    [contract sc_s2_s4d:sql_6:foreign_key:<<in_dept_fk,class,<<class,dname>>,dept,<<dept,dname>>>> sc_s2_s4e  null null]
  }
  transformation {
    [contract sc_s2_s4e:sql_6:primary_key:<<class_pk,class,<<class,gid>>>> sc_s2_s4f  null null]
  }
  transformation {
    [contract sc_s2_s4f:sql_6:column:<<class,pname>> sc_s2_s4g  'Range Void Any' 'True']
  }
  transformation {
    [delete sc_s2_s4g:sql_6:column:<<class,dname>> sc_s2_s4h  '[{g,dn} | {s,g} <- <<student,gid>>; {s,dc} <- <<student,dcode>>; {dc,dn} <- <<degree,dname>>]' 'True']
  }
  transformation {
    [delete sc_s2_s4h:sql_6:column:<<class,gid>> sc_s2_s4i  '[{g,g} | {s,g} <- <<student,gid>>]' 'True']
  }
  transformation {
    [delete sc_s2_s4i:sql_6:table:<<class>> sc_s2_s4j  '[{g} | {s,g} <- <<student,gid>>]' 'True']
  }
  transformation {
    [contract sc_s2_s4j:sql_6:column:<<student,gid>> sc_s2_s4k  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4k sc_s2_s4l:sql_6:column:<<prof,area>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4l sc_s2_s4m:sql_6:column:<<dept,subcode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4m sc_s2_s4n:sql_6:primary_key:<<degree_pk,degree,<<degree,dcode>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4n sc_s2_s4o:sql_6:foreign_key:<<runs_dept_fk,degree,<<degree,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4o sc_s2_s4p:sql_6:foreign_key:<<reads_degree_fk,student,<<student,dcode>>,dept,<<degree,dcode>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4p sc_s2_s4q:sql_6:table:<<worksin>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4q sc_s2_s4r:sql_6:column:<<worksin,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4r sc_s2_s4s:sql_6:column:<<worksin,dname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4s sc_s2_s4t:sql_6:primary_key:<<worksin_pk,worksin,<<worksin,pname>>,<<worksin,dname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4t sc_s2_s4u:sql_6:foreign_key:<<worksin_prof_fk,worksin,<<worksin,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4u sc_s2_s4v:sql_6:foreign_key:<<worksin_dept_fk,worksin,<<worksin,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4v sc_s2_s4w:sql_6:column:<<teaches,evaluation>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4w sc_s2_s4x:sql_6:column:<<attempt,cwmark>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4x sc_s2_s4y:sql_6:column:<<attempt,exmark>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4y sc_s2_s4z:sql_6:table:<<advises>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4z sc_s2_s4za:sql_6:column:<<advises,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4za sc_s2_s4zb:sql_6:column:<<advises,sname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_s2_s4zb sc_s2_s4zc:sql_6:primary_key:<<advises_pk,advises,<<advises,pname>>,<<advises,sname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4zc sc_s2_s4zd:sql_6:foreign_key:<<advises_prof_fk,advises,<<advises,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_s2_s4zd sc_s2_s4ze:sql_6:foreign_key:<<advises_student_fk,advises,<<advises,sname>>,student,<<student,sname>>>>  null null]
  }
  transformation {
    [ident sc_s2_s4ze sc_su  null null]
  }
  transformation {
    [add sc_su sc_su1a:sql_6:column:<<attempt,mark>>  '[{k,cw+em} | {k,em} <- <<attempt,exmark>>; {k,cw} <- <<attempt,cwmark>>]' 'True']
  }
  transformation {
    [delete sc_su1a:sql_6:column:<<attempt,cwmark>> sc_su1b  '[{k,m-ex} | {k,em} <- <<attempt,exmark>>; {k,m} <- <<attempt,mark>>]' 'True']
  }
  transformation {
    [contract sc_su1b:sql_6:column:<<attempt,exmark>> sc_sg  'Range Void Any' 'True']
  }
}
schema sc_s3_src {
  model source_sql_6 {
    tuple_sql_table:<<degree,'2','dcode','dname'>>
    tuple_sql_primary_key:<<degree_pk,<<degree,2,dcode,dname>>,'dcode'>>
    tuple_sql_table:<<registration,'3','sname','ccode','cwmark'>>
    tuple_sql_primary_key:<<registration_pk,<<registration,3,sname,ccode,cwmark>>,'sname','ccode'>>
    tuple_sql_table:<<ug,'2','sname','dcode'>>
    tuple_sql_primary_key:<<student_pk,<<ug,2,sname,dcode>>,'sname'>>
  }
}
pathway sc_s3_src sc_sg {
  transformation {
    [add sc_s3_src sc_s3_src1a:sql_6:table:<<ug>>  '[ {k1} | {k1,a1} <- <<ug,2>>]' 'True']
  }
  transformation {
    [add sc_s3_src1a sc_s3_src1b:sql_6:column:<<ug,'sname'>>  '[ {k1,k1} | {k1,a1} <- <<ug,2>>]' 'True']
  }
  transformation {
    [add sc_s3_src1b sc_s3_src1c:sql_6:column:<<ug,'dcode'>>  '[ {k1,a1} | {k1,a1} <- <<ug,2>>]' 'True']
  }
  transformation {
    [add sc_s3_src1c sc_s3_src1d:sql_6:primary_key:<<student_pk,ug,<<ug,sname>>>>  null null]
  }
  transformation {
    [delete sc_s3_src1d:source_sql_6:tuple_sql_primary_key:<<student_pk,<<ug,2,sname,dcode>>,'sname'>> sc_s3_src1e  null null]
  }
  transformation {
    [add sc_s3_src1e sc_s3_src1f:sql_6:table:<<registration>>  '[ {k1,k2} | {k1,k2,a1} <- <<registration,3>>]' 'True']
  }
  transformation {
    [add sc_s3_src1f sc_s3_src1g:sql_6:column:<<registration,'sname'>>  '[ {{k1,k2},k1} | {k1,k2,a1} <- <<registration,3>>]' 'True']
  }
  transformation {
    [add sc_s3_src1g sc_s3_src1h:sql_6:column:<<registration,'ccode'>>  '[ {{k1,k2},k2} | {k1,k2,a1} <- <<registration,3>>]' 'True']
  }
  transformation {
    [add sc_s3_src1h sc_s3_src1i:sql_6:column:<<registration,'cwmark'>>  '[ {{k1,k2},a1} | {k1,k2,a1} <- <<registration,3>>]' 'True']
  }
  transformation {
    [add sc_s3_src1i sc_s3_src1j:sql_6:primary_key:<<registration_pk,registration,<<registration,sname>>,<<registration,ccode>>>>  null null]
  }
  transformation {
    [delete sc_s3_src1j:source_sql_6:tuple_sql_primary_key:<<registration_pk,<<registration,3,sname,ccode,cwmark>>,'sname','ccode'>> sc_s3_src1k  null null]
  }
  transformation {
    [add sc_s3_src1k sc_s3_src1l:sql_6:table:<<degree>>  '[ {k1} | {k1,a1} <- <<degree,2>>]' 'True']
  }
  transformation {
    [add sc_s3_src1l sc_s3_src1m:sql_6:column:<<degree,'dcode'>>  '[ {k1,k1} | {k1,a1} <- <<degree,2>>]' 'True']
  }
  transformation {
    [add sc_s3_src1m sc_s3_src1n:sql_6:column:<<degree,'dname'>>  '[ {k1,a1} | {k1,a1} <- <<degree,2>>]' 'True']
  }
  transformation {
    [add sc_s3_src1n sc_s3_src1o:sql_6:primary_key:<<degree_pk,degree,<<degree,dcode>>>>  null null]
  }
  transformation {
    [delete sc_s3_src1o:source_sql_6:tuple_sql_primary_key:<<degree_pk,<<degree,2,dcode,dname>>,'dcode'>> sc_s3_src1p  null null]
  }
  transformation {
    [delete sc_s3_src1p:source_sql_6:tuple_sql_table:<<'registration','3','sname','ccode','cwmark'>> sc_s3_src1q  '[ {k1,k2,a1} | {k1,k2} <- <<registration>>; {k1,k2,a1} <- <<registration,cwmark>>]' 'True']
  }
  transformation {
    [delete sc_s3_src1q:source_sql_6:tuple_sql_table:<<'ug','2','sname','dcode'>> sc_s3_src1r  '[ {k1,a1} | {k1} <- <<ug>>; {k1,a1} <- <<ug,dcode>>]' 'True']
  }
  transformation {
    [delete sc_s3_src1r:source_sql_6:tuple_sql_table:<<'degree','2','dcode','dname'>> sc_s3  '[ {k1,a1} | {k1} <- <<degree>>; {k1,a1} <- <<degree,dname>>]' 'True']
  }
  transformation {
    [extend sc_s3 sc_t3:sql_6:table:<<student>>  '<<ug>>' 'True']
  }
  transformation {
    [extend sc_t3 sc_u3:sql_6:column:<<student,sname>>  '<<ug,sname>>' 'True']
  }
  transformation {
    [extend sc_u3 sc_v3:sql_6:column:<<student,dcode>>  '<<ug,dcode>>' 'True']
  }
  transformation {
    [add sc_v3 sc_w3:sql_6:primary_key:<<student_pk,student,<<student,sname>>>>  null null]
  }
  transformation {
    [delete sc_w3:sql_6:primary_key:<<student_pk,ug,<<ug,sname>>>> sc_x3  null null]
  }
  transformation {
    [contract sc_x3:sql_6:column:<<ug,sname>> sc_y3  '[{k,a} | k <- <<ug>>; {k,a} <- <<student,sname>>]' 'True']
  }
  transformation {
    [contract sc_y3:sql_6:column:<<ug,dcode>> sc_z3  '[{k,a} | k <- <<ug>>; {k,a} <- <<student,dcode>>]' 'True']
  }
  transformation {
    [delete sc_z3:sql_6:table:<<ug>> sc_za3  'Range Void <<student>>' 'True']
  }
  transformation {
    [add sc_za3 sc_zb3:sql_6:table:<<somecourse>>  'distinct [{k0} | {k,k0} <- <<registration,ccode>>]' 'True']
  }
  transformation {
    [add sc_zb3 sc_zc3:sql_6:column:<<somecourse,ccode>>  'distinct [{k0,k0} | {k,k0} <- <<registration,ccode>>]' 'True']
  }
  transformation {
    [add sc_zc3 sc_zd3:sql_6:primary_key:<<course_pk,somecourse,<<somecourse,ccode>>>>  null null]
  }
  transformation {
    [add sc_zd3 sc_ze3:sql_6:foreign_key:<<course_fk,registration,<<registration,ccode>>,somecourse,<<somecourse,ccode>>>>  null null]
  }
  transformation {
    [extend sc_ze3 sc_zf3:sql_6:table:<<course>>  '<<somecourse>>' 'True']
  }
  transformation {
    [extend sc_zf3 sc_zg3:sql_6:column:<<course,ccode>>  '<<somecourse,ccode>>' 'True']
  }
  transformation {
    [add sc_zg3 sc_zh3:sql_6:primary_key:<<course_pk,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [delete sc_zh3:sql_6:primary_key:<<course_pk,somecourse,<<somecourse,ccode>>>> sc_zi3  null null]
  }
  transformation {
    [contract sc_zi3:sql_6:foreign_key:<<course_fk,registration,<<registration,ccode>>,somecourse,<<somecourse,ccode>>>> sc_zj3  null null]
  }
  transformation {
    [contract sc_zj3:sql_6:column:<<somecourse,ccode>> sc_zk3  '[{k,a} | k <- <<somecourse>>; {k,a} <- <<course,ccode>>]' 'True']
  }
  transformation {
    [delete sc_zk3:sql_6:table:<<somecourse>> sc_zl3  'Range Void <<course>>' 'True']
  }
  transformation {
    [extend sc_zl3 sc_zm3:sql_6:table:<<attempt>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zm3 sc_zn3:sql_6:column:<<attempt,sname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zn3 sc_zo3:sql_6:column:<<attempt,ccode>>  'Range Void Any' 'True']
  }
  transformation {
    [add sc_zo3 sc_zp3:sql_6:column:<<attempt,cwmark>>  '[{k,cw} | {k,s} <- <<attempt,sname>>; {k,cn} <- <<attempt,ccode>>; {{s,cn},cw} <- <<registration,cwmark>>]' 'True']
  }
  transformation {
    [extend sc_zp3 sc_zq3:sql_6:column:<<attempt,term>>  'Range Void Any' 'True']
  }
  transformation {
    [contract sc_zq3:sql_6:primary_key:<<registration_pk,registration,<<registration,sname>>,<<registration,ccode>>>> sc_zr3  null null]
  }
  transformation {
    [contract sc_zr3:sql_6:column:<<registration,sname>> sc_zs3  'Range Void [{{s,cn},s} | {k,s} <- <<attempt,sname>>; {k,cn} <- <<attempt,ccode>>; {k,q} <- <<attempt,term>>; q>=\'1994-1\']' 'True']
  }
  transformation {
    [contract sc_zs3:sql_6:column:<<registration,ccode>> sc_zt3  'Range Void [{{s,cn},cn} | {k,s} <- <<attempt,sname>>; {k,cn} <- <<attempt,ccode>>; {k,q} <- <<attempt,term>>; q>=\'1994-1\']' 'True']
  }
  transformation {
    [delete sc_zt3:sql_6:column:<<registration,cwmark>> sc_zu3  '[{{s,cn},cw} | {k,s} <- <<attempt,sname>>; {k,cn} <- <<attempt,ccode>>; {k,cw} <- <<attempt,cwmark>>]' 'True']
  }
  transformation {
    [contract sc_zu3:sql_6:table:<<registration>> sc_zv3  'Range Void [{s,cn} | {k,s} <- <<attempt,sname>>; {k,cn} <- <<attempt,ccode>>; {k,q} <- <<attempt,term>>; q>=\'1994-1\']' 'True']
  }
  transformation {
    [extend sc_zv3 sc_zw3:sql_6:table:<<prof>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zw3 sc_zx3:sql_6:column:<<prof,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zx3 sc_zy3:sql_6:column:<<prof,area>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zy3 sc_zz3:sql_6:primary_key:<<prof_pk,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zz3 sc_zza3:sql_6:column:<<course,title>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zza3 sc_zzb3:sql_6:table:<<dept>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzb3 sc_zzc3:sql_6:column:<<dept,dname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzc3 sc_zzd3:sql_6:column:<<dept,subcode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzd3 sc_zze3:sql_6:column:<<dept,hod>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zze3 sc_zzf3:sql_6:primary_key:<<dept_pk,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzf3 sc_zzg3:sql_6:foreign_key:<<runs_dept_fk,degree,<<degree,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzg3 sc_zzh3:sql_6:foreign_key:<<reads_degree_fk,student,<<student,dcode>>,dept,<<degree,dcode>>>>  null null]
  }
  transformation {
    [extend sc_zzh3 sc_zzi3:sql_6:table:<<worksin>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzi3 sc_zzj3:sql_6:column:<<worksin,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzj3 sc_zzk3:sql_6:column:<<worksin,dname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzk3 sc_zzl3:sql_6:primary_key:<<worksin_pk,worksin,<<worksin,pname>>,<<worksin,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzl3 sc_zzm3:sql_6:foreign_key:<<worksin_prof_fk,worksin,<<worksin,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzm3 sc_zzn3:sql_6:foreign_key:<<worksin_dept_fk,worksin,<<worksin,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzn3 sc_zzo3:sql_6:table:<<teaches>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzo3 sc_zzp3:sql_6:column:<<teaches,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzp3 sc_zzq3:sql_6:column:<<teaches,ccode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzq3 sc_zzr3:sql_6:column:<<teaches,term>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzr3 sc_zzs2:sql_6:column:<<teaches,evaluation>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzs2 sc_zzt2:sql_6:primary_key:<<teaches_pk,teaches,<<teaches,pname>>,<<teaches,ccode>>,<<teaches,term>>>>  null null]
  }
  transformation {
    [extend sc_zzt2 sc_zzu2:sql_6:foreign_key:<<teaches_prof_fk,teaches,<<teaches,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzu2 sc_zzv2:sql_6:foreign_key:<<teaches_course_fk,teaches,<<teaches,ccode>>,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [extend sc_zzv2 sc_zzw2:sql_6:column:<<attempt,exmark>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzw2 sc_zzx2:sql_6:primary_key:<<attempt_pk,attempt,<<attempt,sname>>,<<attempt,ccode>>,<<attempt,term>>>>  null null]
  }
  transformation {
    [extend sc_zzx2 sc_zzy2:sql_6:foreign_key:<<attempt_student_fk,attempt,<<attempt,sname>>,student,<<student,sname>>>>  null null]
  }
  transformation {
    [extend sc_zzy2 sc_zzz2:sql_6:foreign_key:<<attempt_course_fk,attempt,<<attempt,ccode>>,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [extend sc_zzz2 sc_zzza2:sql_6:table:<<advises>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzza2 sc_zzzb2:sql_6:column:<<advises,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzb2 sc_zzzc2:sql_6:column:<<advises,sname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzc2 sc_zzzd2:sql_6:primary_key:<<advises_pk,advises,<<advises,pname>>,<<advises,sname>>>>  null null]
  }
  transformation {
    [extend sc_zzzd2 sc_zzze2:sql_6:foreign_key:<<advises_prof_fk,advises,<<advises,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzze2 sc_zzzf2:sql_6:foreign_key:<<advises_student_fk,advises,<<advises,sname>>,student,<<student,sname>>>>  null null]
  }
  transformation {
    [ident sc_zzzf2 sc_su  null null]
  }
  transformation {
    [add sc_su sc_su1a:sql_6:column:<<attempt,mark>>  '[{k,cw+em} | {k,em} <- <<attempt,exmark>>; {k,cw} <- <<attempt,cwmark>>]' 'True']
  }
  transformation {
    [delete sc_su1a:sql_6:column:<<attempt,cwmark>> sc_su1b  '[{k,m-ex} | {k,em} <- <<attempt,exmark>>; {k,m} <- <<attempt,mark>>]' 'True']
  }
  transformation {
    [contract sc_su1b:sql_6:column:<<attempt,exmark>> sc_sg  'Range Void Any' 'True']
  }
}
schema sc_s1_src {
  model source_sql_6 {
    tuple_sql_table:<<dept,'2','dname','subcode'>>
    tuple_sql_primary_key:<<dept_pk,<<dept,2,dname,subcode>>,'dname'>>
    tuple_sql_table:<<studies,'5','sname','ccode','term','exmark','title'>>
    tuple_sql_primary_key:<<studies_pk,<<studies,5,sname,ccode,term,exmark,title>>,'sname','ccode','term'>>
  }
}
pathway sc_s1_src sc_sg {
  transformation {
    [add sc_s1_src sc_s1_src1a:sql_6:table:<<dept>>  '[ {k1} | {k1,a1} <- <<dept,2>>]' 'True']
  }
  transformation {
    [add sc_s1_src1a sc_s1_src1b:sql_6:column:<<dept,'dname'>>  '[ {k1,k1} | {k1,a1} <- <<dept,2>>]' 'True']
  }
  transformation {
    [add sc_s1_src1b sc_s1_src1c:sql_6:column:<<dept,'subcode'>>  '[ {k1,a1} | {k1,a1} <- <<dept,2>>]' 'True']
  }
  transformation {
    [add sc_s1_src1c sc_s1_src1d:sql_6:primary_key:<<dept_pk,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [delete sc_s1_src1d:source_sql_6:tuple_sql_primary_key:<<dept_pk,<<dept,2,dname,subcode>>,'dname'>> sc_s1_src1e  null null]
  }
  transformation {
    [add sc_s1_src1e sc_s1_src1f:sql_6:table:<<studies>>  '[ {k1,k2,k3} | {k1,k2,k3,a1,a2} <- <<studies,5>>]' 'True']
  }
  transformation {
    [add sc_s1_src1f sc_s1_src1g:sql_6:column:<<studies,'sname'>>  '[ {{k1,k2,k3},k1} | {k1,k2,k3,a1,a2} <- <<studies,5>>]' 'True']
  }
  transformation {
    [add sc_s1_src1g sc_s1_src1h:sql_6:column:<<studies,'ccode'>>  '[ {{k1,k2,k3},k2} | {k1,k2,k3,a1,a2} <- <<studies,5>>]' 'True']
  }
  transformation {
    [add sc_s1_src1h sc_s1_src1i:sql_6:column:<<studies,'term'>>  '[ {{k1,k2,k3},k3} | {k1,k2,k3,a1,a2} <- <<studies,5>>]' 'True']
  }
  transformation {
    [add sc_s1_src1i sc_s1_src1j:sql_6:column:<<studies,'exmark'>>  '[ {{k1,k2,k3},a1} | {k1,k2,k3,a1,a2} <- <<studies,5>>]' 'True']
  }
  transformation {
    [add sc_s1_src1j sc_s1_src1k:sql_6:column:<<studies,'title'>>  '[ {{k1,k2,k3},a2} | {k1,k2,k3,a1,a2} <- <<studies,5>>]' 'True']
  }
  transformation {
    [add sc_s1_src1k sc_s1_src1l:sql_6:primary_key:<<studies_pk,studies,<<studies,sname>>,<<studies,ccode>>,<<studies,term>>>>  null null]
  }
  transformation {
    [delete sc_s1_src1l:source_sql_6:tuple_sql_primary_key:<<studies_pk,<<studies,5,sname,ccode,term,exmark,title>>,'sname','ccode','term'>> sc_s1_src1m  null null]
  }
  transformation {
    [delete sc_s1_src1m:source_sql_6:tuple_sql_table:<<'dept','2','dname','subcode'>> sc_s1_src1n  '[ {k1,a1} | {k1} <- <<dept>>; {k1,a1} <- <<dept,subcode>>]' 'True']
  }
  transformation {
    [delete sc_s1_src1n:source_sql_6:tuple_sql_table:<<'studies','5','sname','ccode','term','exmark','title'>> sc_s1  '[ {k1,k2,k3,a1,a2} | {k1,k2,k3} <- <<studies>>; {k1,k2,k3,a1} <- <<studies,exmark>>; {k1,k2,k3,a2} <- <<studies,title>>]' 'True']
  }
  transformation {
    [add sc_s1 sc_t:sql_6:table:<<somecourse>>  'distinct [{k0} | {k,k0} <- <<studies,ccode>>]' 'True']
  }
  transformation {
    [add sc_t sc_u:sql_6:column:<<somecourse,ccode>>  'distinct [{k0,k0} | {k,k0} <- <<studies,ccode>>]' 'True']
  }
  transformation {
    [add sc_u sc_v:sql_6:primary_key:<<course_pk,somecourse,<<somecourse,ccode>>>>  null null]
  }
  transformation {
    [add sc_v sc_w:sql_6:foreign_key:<<course_fk,studies,<<studies,ccode>>,somecourse,<<somecourse,ccode>>>>  null null]
  }
  transformation {
    [add sc_w sc_x:sql_6:column:<<somecourse,title>>  'distinct [{k0,a} | {k,k0} <- <<studies,ccode>>; {k,a} <- <<studies,title>>]' 'True']
  }
  transformation {
    [delete sc_x:sql_6:column:<<studies,title>> sc_y  '[{ko,a} | {ko,k0} <- <<studies,ccode>>; {kn,k0} <- <<somecourse,ccode>>; {kn,a} <- <<somecourse,title>>]' 'True']
  }
  transformation {
    [extend sc_y sc_z:sql_6:table:<<course>>  '<<somecourse>>' 'True']
  }
  transformation {
    [extend sc_z sc_za:sql_6:column:<<course,ccode>>  '<<somecourse,ccode>>' 'True']
  }
  transformation {
    [extend sc_za sc_zb:sql_6:column:<<course,title>>  '<<somecourse,title>>' 'True']
  }
  transformation {
    [add sc_zb sc_zc:sql_6:primary_key:<<course_pk,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [delete sc_zc:sql_6:primary_key:<<course_pk,somecourse,<<somecourse,ccode>>>> sc_zd  null null]
  }
  transformation {
    [contract sc_zd:sql_6:foreign_key:<<course_fk,studies,<<studies,ccode>>,somecourse,<<somecourse,ccode>>>> sc_ze  null null]
  }
  transformation {
    [contract sc_ze:sql_6:column:<<somecourse,ccode>> sc_zf  '[{k,a} | k <- <<somecourse>>; {k,a} <- <<course,ccode>>]' 'True']
  }
  transformation {
    [contract sc_zf:sql_6:column:<<somecourse,title>> sc_zg  '[{k,a} | k <- <<somecourse>>; {k,a} <- <<course,title>>]' 'True']
  }
  transformation {
    [delete sc_zg:sql_6:table:<<somecourse>> sc_zh  'Range Void [k | k <- <<course>>; {k,a0} <- <<course,ccode>>; a0>=500]' 'True']
  }
  transformation {
    [add sc_zh sc_zi:sql_6:table:<<somestudent>>  'distinct [{k0} | {k,k0} <- <<studies,sname>>]' 'True']
  }
  transformation {
    [add sc_zi sc_zj:sql_6:column:<<somestudent,sname>>  'distinct [{k0,k0} | {k,k0} <- <<studies,sname>>]' 'True']
  }
  transformation {
    [add sc_zj sc_zk:sql_6:primary_key:<<student_pk,somestudent,<<somestudent,sname>>>>  null null]
  }
  transformation {
    [add sc_zk sc_zl:sql_6:foreign_key:<<student_fk,studies,<<studies,sname>>,somestudent,<<somestudent,sname>>>>  null null]
  }
  transformation {
    [extend sc_zl sc_zm:sql_6:table:<<student>>  '<<somestudent>>' 'True']
  }
  transformation {
    [extend sc_zm sc_zn:sql_6:column:<<student,sname>>  '<<somestudent,sname>>' 'True']
  }
  transformation {
    [add sc_zn sc_zo:sql_6:primary_key:<<student_pk,student,<<student,sname>>>>  null null]
  }
  transformation {
    [delete sc_zo:sql_6:primary_key:<<student_pk,somestudent,<<somestudent,sname>>>> sc_zp  null null]
  }
  transformation {
    [contract sc_zp:sql_6:foreign_key:<<student_fk,studies,<<studies,sname>>,somestudent,<<somestudent,sname>>>> sc_zq  null null]
  }
  transformation {
    [contract sc_zq:sql_6:column:<<somestudent,sname>> sc_zr  '[{k,a} | k <- <<somestudent>>; {k,a} <- <<student,sname>>]' 'True']
  }
  transformation {
    [delete sc_zr:sql_6:table:<<somestudent>> sc_zs  'Range Void <<student>>' 'True']
  }
  transformation {
    [extend sc_zs sc_zt:sql_6:table:<<attempt>>  '<<studies>>' 'True']
  }
  transformation {
    [extend sc_zt sc_zu:sql_6:column:<<attempt,sname>>  '<<studies,sname>>' 'True']
  }
  transformation {
    [extend sc_zu sc_zv:sql_6:column:<<attempt,ccode>>  '<<studies,ccode>>' 'True']
  }
  transformation {
    [extend sc_zv sc_zw:sql_6:column:<<attempt,term>>  '<<studies,term>>' 'True']
  }
  transformation {
    [extend sc_zw sc_zx:sql_6:column:<<attempt,exmark>>  '<<studies,exmark>>' 'True']
  }
  transformation {
    [add sc_zx sc_zy:sql_6:primary_key:<<attempt_pk,attempt,<<attempt,sname>>,<<attempt,ccode>>,<<attempt,term>>>>  null null]
  }
  transformation {
    [delete sc_zy:sql_6:primary_key:<<studies_pk,studies,<<studies,sname>>,<<studies,ccode>>,<<studies,term>>>> sc_zz  null null]
  }
  transformation {
    [contract sc_zz:sql_6:column:<<studies,sname>> sc_zza  '[{k,a} | k <- <<studies>>; {k,a} <- <<attempt,sname>>]' 'True']
  }
  transformation {
    [contract sc_zza:sql_6:column:<<studies,ccode>> sc_zzb  '[{k,a} | k <- <<studies>>; {k,a} <- <<attempt,ccode>>]' 'True']
  }
  transformation {
    [contract sc_zzb:sql_6:column:<<studies,term>> sc_zzc  '[{k,a} | k <- <<studies>>; {k,a} <- <<attempt,term>>]' 'True']
  }
  transformation {
    [contract sc_zzc:sql_6:column:<<studies,exmark>> sc_zzd  '[{k,a} | k <- <<studies>>; {k,a} <- <<attempt,exmark>>]' 'True']
  }
  transformation {
    [delete sc_zzd:sql_6:table:<<studies>> sc_zze  'Range Void [k | k <- <<attempt>>; {k,a0} <- <<attempt,term>>; a0>=\'1995-2\'; {k,a1} <- <<attempt,ccode>>; a1>=500]' 'True']
  }
  transformation {
    [extend sc_zze sc_zzf:sql_6:table:<<prof>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzf sc_zzg:sql_6:column:<<prof,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzg sc_zzh:sql_6:column:<<prof,area>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzh sc_zzi:sql_6:primary_key:<<prof_pk,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzi sc_zzj:sql_6:column:<<dept,hod>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzj sc_zzk:sql_6:table:<<degree>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzk sc_zzl:sql_6:column:<<degree,dcode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzl sc_zzm:sql_6:column:<<degree,dname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzm sc_zzn:sql_6:primary_key:<<degree_pk,degree,<<degree,dcode>>>>  null null]
  }
  transformation {
    [extend sc_zzn sc_zzo:sql_6:foreign_key:<<runs_dept_fk,degree,<<degree,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzo sc_zzp:sql_6:column:<<student,dcode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzp sc_zzq:sql_6:foreign_key:<<reads_degree_fk,student,<<student,dcode>>,dept,<<degree,dcode>>>>  null null]
  }
  transformation {
    [extend sc_zzq sc_zzr:sql_6:table:<<worksin>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzr sc_zzs:sql_6:column:<<worksin,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzs sc_zzt:sql_6:column:<<worksin,dname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzt sc_zzu:sql_6:primary_key:<<worksin_pk,worksin,<<worksin,pname>>,<<worksin,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzu sc_zzv:sql_6:foreign_key:<<worksin_prof_fk,worksin,<<worksin,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzv sc_zzw:sql_6:foreign_key:<<worksin_dept_fk,worksin,<<worksin,dname>>,dept,<<dept,dname>>>>  null null]
  }
  transformation {
    [extend sc_zzw sc_zzx:sql_6:table:<<teaches>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzx sc_zzy:sql_6:column:<<teaches,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzy sc_zzz:sql_6:column:<<teaches,ccode>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzz sc_zzza:sql_6:column:<<teaches,term>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzza sc_zzzb:sql_6:column:<<teaches,evaluation>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzb sc_zzzc:sql_6:primary_key:<<teaches_pk,teaches,<<teaches,pname>>,<<teaches,ccode>>,<<teaches,term>>>>  null null]
  }
  transformation {
    [extend sc_zzzc sc_zzzd:sql_6:foreign_key:<<teaches_prof_fk,teaches,<<teaches,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzzd sc_zzze:sql_6:foreign_key:<<teaches_course_fk,teaches,<<teaches,ccode>>,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [extend sc_zzze sc_zzzf:sql_6:column:<<attempt,cwmark>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzf sc_zzzg:sql_6:foreign_key:<<attempt_student_fk,attempt,<<attempt,sname>>,student,<<student,sname>>>>  null null]
  }
  transformation {
    [extend sc_zzzg sc_zzzh:sql_6:foreign_key:<<attempt_course_fk,attempt,<<attempt,ccode>>,course,<<course,ccode>>>>  null null]
  }
  transformation {
    [extend sc_zzzh sc_zzzi:sql_6:table:<<advises>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzi sc_zzzj:sql_6:column:<<advises,pname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzj sc_zzzk:sql_6:column:<<advises,sname>>  'Range Void Any' 'True']
  }
  transformation {
    [extend sc_zzzk sc_zzzl:sql_6:primary_key:<<advises_pk,advises,<<advises,pname>>,<<advises,sname>>>>  null null]
  }
  transformation {
    [extend sc_zzzl sc_zzzm:sql_6:foreign_key:<<advises_prof_fk,advises,<<advises,pname>>,prof,<<prof,pname>>>>  null null]
  }
  transformation {
    [extend sc_zzzm sc_zzzn:sql_6:foreign_key:<<advises_student_fk,advises,<<advises,sname>>,student,<<student,sname>>>>  null null]
  }
  transformation {
    [ident sc_zzzn sc_su  null null]
  }
  transformation {
    [add sc_su sc_su1a:sql_6:column:<<attempt,mark>>  '[{k,cw+em} | {k,em} <- <<attempt,exmark>>; {k,cw} <- <<attempt,cwmark>>]' 'True']
  }
  transformation {
    [delete sc_su1a:sql_6:column:<<attempt,cwmark>> sc_su1b  '[{k,m-ex} | {k,em} <- <<attempt,exmark>>; {k,m} <- <<attempt,mark>>]' 'True']
  }
  transformation {
    [contract sc_su1b:sql_6:column:<<attempt,exmark>> sc_sg  'Range Void Any' 'True']
  }
}
schema sc_sg {
  model sql_6 {
    table:<<prof>>
    column:<<prof,pname>>
    column:<<prof,area>>
    primary_key:<<prof_pk,prof,<<prof,pname>>>>
    table:<<course>>
    column:<<course,ccode>>
    column:<<course,title>>
    primary_key:<<course_pk,course,<<course,ccode>>>>
    table:<<dept>>
    column:<<dept,dname>>
    column:<<dept,subcode>>
    column:<<dept,hod>>
    primary_key:<<dept_pk,dept,<<dept,dname>>>>
    table:<<degree>>
    column:<<degree,dcode>>
    column:<<degree,dname>>
    primary_key:<<degree_pk,degree,<<degree,dcode>>>>
    foreign_key:<<runs_dept_fk,degree,<<degree,dname>>,dept,<<dept,dname>>>>
    table:<<student>>
    column:<<student,sname>>
    column:<<student,dcode>>
    primary_key:<<student_pk,student,<<student,sname>>>>
    foreign_key:<<reads_degree_fk,student,<<student,dcode>>,dept,<<degree,dcode>>>>
    table:<<worksin>>
    column:<<worksin,pname>>
    column:<<worksin,dname>>
    primary_key:<<worksin_pk,worksin,<<worksin,pname>>,<<worksin,dname>>>>
    foreign_key:<<worksin_prof_fk,worksin,<<worksin,pname>>,prof,<<prof,pname>>>>
    foreign_key:<<worksin_dept_fk,worksin,<<worksin,dname>>,dept,<<dept,dname>>>>
    table:<<teaches>>
    column:<<teaches,pname>>
    column:<<teaches,ccode>>
    column:<<teaches,term>>
    column:<<teaches,evaluation>>
    primary_key:<<teaches_pk,teaches,<<teaches,pname>>,<<teaches,ccode>>,<<teaches,term>>>>
    foreign_key:<<teaches_prof_fk,teaches,<<teaches,pname>>,prof,<<prof,pname>>>>
    foreign_key:<<teaches_course_fk,teaches,<<teaches,ccode>>,course,<<course,ccode>>>>
    table:<<attempt>>
    column:<<attempt,sname>>
    column:<<attempt,ccode>>
    column:<<attempt,term>>
    primary_key:<<attempt_pk,attempt,<<attempt,sname>>,<<attempt,ccode>>,<<attempt,term>>>>
    foreign_key:<<attempt_student_fk,attempt,<<attempt,sname>>,student,<<student,sname>>>>
    foreign_key:<<attempt_course_fk,attempt,<<attempt,ccode>>,course,<<course,ccode>>>>
    table:<<advises>>
    column:<<advises,pname>>
    column:<<advises,sname>>
    primary_key:<<advises_pk,advises,<<advises,pname>>,<<advises,sname>>>>
    foreign_key:<<advises_prof_fk,advises,<<advises,pname>>,prof,<<prof,pname>>>>
    foreign_key:<<advises_student_fk,advises,<<advises,sname>>,student,<<student,sname>>>>
    column:<<attempt,mark>>
  }
}
